Makefile.in revision 171835
1# Makefile for GNU Compiler Collection
2# Run 'configure' to generate Makefile from Makefile.in
3
4# Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
5# 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6# Free Software Foundation, Inc.
7
8#This file is part of GCC.
9
10#GCC is free software; you can redistribute it and/or modify
11#it under the terms of the GNU General Public License as published by
12#the Free Software Foundation; either version 2, or (at your option)
13#any later version.
14
15#GCC is distributed in the hope that it will be useful,
16#but WITHOUT ANY WARRANTY; without even the implied warranty of
17#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18#GNU General Public License for more details.
19
20#You should have received a copy of the GNU General Public License
21#along with GCC; see the file COPYING.  If not, write to
22#the Free Software Foundation, 51 Franklin Street, Fifth Floor,
23#Boston MA 02110-1301, USA.
24
25# The targets for external use include:
26# all, doc, proto, install, install-cross, install-cross-rest,
27# uninstall, TAGS, mostlyclean, clean, distclean, maintainer-clean,
28# stage1, stage2, stage3, stage4.
29
30# This is the default target.
31# Set by autoconf to "all.internal" for a native build, or
32# "all.cross" to build a cross compiler.
33all: @ALL@
34
35# Depend on this to specify a phony target portably.
36force:
37
38# This tells GNU make version 3 not to export the variables
39# defined in this file into the environment (and thus recursive makes).
40.NOEXPORT:
41# And this tells it not to automatically pass command-line variables
42# to recursive makes.
43MAKEOVERRIDES =
44
45# Suppress smart makes who think they know how to automake yacc and flex file
46.y.c:
47.l.c:
48
49# The only suffixes we want for implicit rules are .c and .o, so clear
50# the list and add them.  This speeds up GNU Make, and allows -r to work.
51# For i18n support, we also need .gmo, .po, .pox.
52# This must come before the language makefile fragments to allow them to
53# add suffixes and rules of their own.
54.SUFFIXES:
55.SUFFIXES: .c .o .po .pox .gmo
56
57# -------------------------------
58# Standard autoconf-set variables
59# -------------------------------
60
61build=@build@
62host=@host@
63target=@target@
64target_noncanonical:=@target_noncanonical@
65
66# Sed command to transform gcc to installed name.
67program_transform_name := @program_transform_name@
68
69# -----------------------------
70# Directories used during build
71# -----------------------------
72
73# Directory where sources are, from where we are.
74srcdir = @srcdir@
75gcc_docdir = @srcdir@/doc
76
77# Directory where sources are, absolute.
78abs_srcdir = @abs_srcdir@
79abs_docdir = @abs_srcdir@/doc
80
81# Top build directory for this package, relative to here.
82top_builddir = .
83# objdir is set by configure.
84# It's normally the absolute path to the current directory.
85objdir = @objdir@
86
87host_subdir=@host_subdir@
88build_subdir=@build_subdir@
89build_libsubdir=@build_libsubdir@
90
91ifeq ($(host_subdir),.)
92build_objdir := ../$(build_subdir)
93build_libobjdir := ../$(build_libsubdir)
94else
95build_objdir := ../../$(build_subdir)
96build_libobjdir := ../../$(build_libsubdir)
97endif
98
99# --------
100# Defined vpaths
101# --------
102
103# Directory where sources are, from where we are.
104VPATH = @srcdir@
105
106# We define a vpath for the sources of the .texi files here because they
107# are split between multiple directories and we would rather use one implicit
108# pattern rule for everything.
109# This vpath could be extended within the Make-lang fragments.
110
111vpath %.texi $(gcc_docdir):$(gcc_docdir)/include
112
113# ----
114# Default values for variables overridden in Makefile fragments.
115# These need to be quite early in the Makefile so as to avoid
116# trouble induced by changes in fragment ordering.
117# ----
118
119# For ada/Make-lang.in; overridden in, for example, config/pa/x-ada.
120X_ADA_CFLAGS =
121T_ADA_CFLAGS =
122X_ADAFLAGS =
123T_ADAFLAGS =
124
125# --------
126# UNSORTED
127# --------
128
129# Variables that exist for you to override.
130# See below for how to change them for certain systems.
131
132# List of language subdirectories.
133SUBDIRS =@subdirs@ build
134
135# Selection of languages to be made.
136CONFIG_LANGUAGES = @all_selected_languages@
137LANGUAGES = c gcov$(exeext) gcov-dump$(exeext) $(CONFIG_LANGUAGES)
138
139# Selection of languages to be made during stage1 build.
140BOOT_LANGUAGES = c @all_boot_languages@
141
142# Various ways of specifying flags for compilations:
143# CFLAGS is for the user to override to, e.g., do a cross build with -O2.
144# For recursive  bootstrap builds CFLAGS is used to pass in STAGE1_CFLAGS
145# or BOOT_CFLAGS
146# STAGE1_CFLAGS is set by configure on some targets or passed from toplevel
147# and sets the CFLAGS passed to stage1 of a bootstrap compilation.
148# STAGE1_CHECKING enables checking for the stage1 compiler
149# BOOT_CFLAGS is the value of CFLAGS to pass to the stage2, stage3 and stage4
150# bootstrap compilations.
151# XCFLAGS is used for most compilations but not when using the GCC just built.
152# TCFLAGS is used for compilations with the GCC just built.
153XCFLAGS =
154TCFLAGS =
155CFLAGS = @CFLAGS@
156LDFLAGS = @LDFLAGS@
157STAGE1_CFLAGS = -g @stage1_cflags@
158STAGE1_CHECKING_CFLAGS = -DENABLE_CHECKING -DENABLE_ASSERT_CHECKING
159BOOT_CFLAGS = -g -O2
160
161# Flags to determine code coverage. When coverage is disabled, this will
162# contain the optimization flags, as you normally want code coverage
163# without optimization.
164COVERAGE_FLAGS = @coverage_flags@
165coverageexts = .{gcda,gcno}
166
167# The warning flags are separate from BOOT_CFLAGS because people tend to
168# override optimization flags and we'd like them to still have warnings
169# turned on.  These flags are also used to pass other stage dependent
170# flags from configure.  The user is free to explicitly turn these flags
171# off if they wish.
172# LOOSE_WARN are the warning flags to use when compiling something
173# which is only compiled with gcc, such as libgcc and the frontends
174# other than C.
175# STRICT_WARN and STRICT2_WARN are the additional warning flags to
176# apply to the back end and the C front end, which may be compiled
177# with other compilers.  This is partially controlled by configure in
178# stage1, as not all versions of gcc understand -Wno-long-long or
179# -Wno-variadic-macros.
180# CXX_COMPAT_WARN are C++ source compatibility warnings.
181LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
182STRICT_WARN = @strict1_warn@
183WERROR_FLAGS = @WERROR@
184STRICT2_WARN = -pedantic -Wno-long-long -Wno-variadic-macros \
185  -Wno-overlength-strings -Wold-style-definition -Wmissing-format-attribute \
186  $(WERROR_FLAGS)
187CXX_COMPAT_WARN = @cxx_compat_warn@
188
189# This is set by --enable-checking.  The idea is to catch forgotten
190# "extern" tags in header files.
191NOCOMMON_FLAG = @nocommon_flag@
192
193# This is set by --disable-maintainer-mode (default) to "#"
194MAINT := @MAINT@
195
196# These are set by --enable-checking=valgrind.
197RUN_GEN = @valgrind_command@
198VALGRIND_DRIVER_DEFINES = @valgrind_path_defines@
199
200# This is how we control whether or not the additional warnings are applied.
201.-warn = $(STRICT_WARN)
202build-warn = $(STRICT_WARN)
203GCC_WARN_CFLAGS = $(LOOSE_WARN) $($(@D)-warn) $(NOCOMMON_FLAG) $($@-warn)
204
205# These files are to have specific diagnostics suppressed, or are not to
206# be subject to -Werror:
207# Bison-1.75 output often yields (harmless) -Wtraditional warnings
208build/gengtype-yacc.o-warn = -Wno-error
209# flex output may yield harmless "no previous prototype" warnings
210build/gengtype-lex.o-warn = -Wno-error
211# SYSCALLS.c misses prototypes
212SYSCALLS.c.X-warn = -Wno-strict-prototypes -Wno-error
213# These files need -Wno-error because the gimplifier triggers hard to fix
214# warnings when converting to GIMPLE form.  The warnings are triggered because
215# moving the condition into the loop prevents the loop optimizer from
216# recognizing that the loop will always be executed at least once.  We need
217# a new loop optimizer.
218reload1.o-warn = -Wno-error
219
220# All warnings have to be shut off in stage1 if the compiler used then
221# isn't gcc; configure determines that.  WARN_CFLAGS will be either
222# $(GCC_WARN_CFLAGS), or nothing.
223WARN_CFLAGS = @warn_cflags@
224
225CPPFLAGS = @CPPFLAGS@
226
227# These exists to be overridden by the x-* and t-* files, respectively.
228X_CFLAGS =
229T_CFLAGS =
230
231X_CPPFLAGS =
232T_CPPFLAGS =
233
234AWK = @AWK@
235CC = @CC@
236BISON = @BISON@
237BISONFLAGS =
238FLEX = @FLEX@
239FLEXFLAGS =
240AR = @AR@
241AR_FLAGS = rc
242NM = @NM@
243RANLIB = @RANLIB@
244RANLIB_FLAGS = @ranlib_flags@
245
246# -------------------------------------------
247# Programs which operate on the build machine
248# -------------------------------------------
249
250SHELL = @SHELL@
251# pwd command to use.  Allow user to override default by setting PWDCMD in
252# the environment to account for automounters.  The make variable must not
253# be called PWDCMD, otherwise the value set here is passed to make
254# subprocesses and overrides the setting from the user's environment.
255# Don't use PWD since it is a common shell environment variable and we
256# don't want to corrupt it.
257PWD_COMMAND = $${PWDCMD-pwd}
258# on sysV, define this as cp.
259INSTALL = @INSTALL@
260# Some systems may be missing symbolic links, regular links, or both.
261# Allow configure to check this and use "ln -s", "ln", or "cp" as appropriate.
262LN=@LN@
263LN_S=@LN_S@
264# These permit overriding just for certain files.
265INSTALL_PROGRAM = @INSTALL_PROGRAM@
266INSTALL_DATA = @INSTALL_DATA@
267INSTALL_SCRIPT = @INSTALL@
268MAKEINFO = @MAKEINFO@
269MAKEINFOFLAGS = --no-split
270TEXI2DVI = texi2dvi
271TEXI2PDF = texi2pdf
272TEXI2HTML = $(MAKEINFO) --html
273TEXI2POD = perl $(srcdir)/../contrib/texi2pod.pl
274POD2MAN = pod2man --center="GNU" --release="gcc-$(version)"
275# Some versions of `touch' (such as the version on Solaris 2.8)
276# do not correctly set the timestamp due to buggy versions of `utime'
277# in the kernel.  So, we use `echo' instead.
278STAMP = echo timestamp >
279
280# Make sure the $(MAKE) variable is defined.
281@SET_MAKE@
282REMAKEFLAGS=LANGUAGES="$(LANGUAGES)" BOOT_CFLAGS="$(BOOT_CFLAGS)"
283
284# Locate mkinstalldirs.
285mkinstalldirs=$(SHELL) $(srcdir)/../mkinstalldirs
286
287# --------
288# UNSORTED
289# --------
290
291# Some compilers can't handle cc -c blah.c -o foo/blah.o.
292# In stage2 and beyond, we force this to "-o $@" since we know we're using gcc.
293OUTPUT_OPTION = @OUTPUT_OPTION@
294
295# This is where we get zlib from.  zlibdir is -L../zlib and zlibinc is
296# -I../zlib, unless we were configured with --with-system-zlib, in which
297# case both are empty.
298ZLIB = @zlibdir@ -lz
299ZLIBINC = @zlibinc@
300
301# How to find GMP
302GMPLIBS = @GMPLIBS@
303GMPINC = @GMPINC@
304
305CPPLIB = ../libcpp/libcpp.a
306CPPINC = -I$(srcdir)/../libcpp/include
307
308# Where to find decNumber
309DECNUM = $(srcdir)/../libdecnumber
310DECNUMINC = -I$(DECNUM) -I../libdecnumber
311LIBDECNUMBER = ../libdecnumber/libdecnumber.a
312
313# Substitution type for target's getgroups 2nd arg.
314TARGET_GETGROUPS_T = @TARGET_GETGROUPS_T@
315
316# Target to use when installing include directory.  Either
317# install-headers-tar, install-headers-cpio or install-headers-cp.
318INSTALL_HEADERS_DIR = @build_install_headers_dir@
319
320# Header files that are made available under the same name
321# to programs compiled with GCC.
322USER_H = $(srcdir)/ginclude/decfloat.h \
323	 $(srcdir)/ginclude/float.h \
324	 $(srcdir)/ginclude/iso646.h \
325	 $(srcdir)/ginclude/stdarg.h \
326	 $(srcdir)/ginclude/stdbool.h \
327	 $(srcdir)/ginclude/stddef.h \
328	 $(srcdir)/ginclude/varargs.h \
329	 $(EXTRA_HEADERS)
330
331UNWIND_H = $(srcdir)/unwind-generic.h
332
333# The GCC to use for compiling libgcc.a and crt*.o.
334# Usually the one we just built.
335# Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
336GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -L$(objdir)/../ld
337
338# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
339# It omits XCFLAGS, and specifies -B./.
340# It also specifies -isystem ./include to find, e.g., stddef.h.
341GCC_CFLAGS=$(CFLAGS_FOR_TARGET) $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -Wold-style-definition $($@-warn) -isystem ./include $(TCFLAGS)
342
343# ---------------------------------------------------
344# Programs which produce files for the target machine
345# ---------------------------------------------------
346
347AR_FOR_TARGET := $(shell \
348  if [ -f $(objdir)/../binutils/ar ] ; then \
349    echo $(objdir)/../binutils/ar ; \
350  else \
351    if [ "$(host)" = "$(target)" ] ; then \
352      echo $(AR); \
353    else \
354       t='$(program_transform_name)'; echo ar | sed -e $$t ; \
355    fi; \
356  fi)
357AR_FLAGS_FOR_TARGET =
358AR_CREATE_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) rc
359AR_EXTRACT_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) x
360LIPO_FOR_TARGET = lipo
361ORIGINAL_AS_FOR_TARGET = @ORIGINAL_AS_FOR_TARGET@
362RANLIB_FOR_TARGET := $(shell \
363  if [ -f $(objdir)/../binutils/ranlib ] ; then \
364    echo $(objdir)/../binutils/ranlib ; \
365  else \
366    if [ "$(host)" = "$(target)" ] ; then \
367      echo $(RANLIB); \
368    else \
369       t='$(program_transform_name)'; echo ranlib | sed -e $$t ; \
370    fi; \
371  fi)
372ORIGINAL_LD_FOR_TARGET = @ORIGINAL_LD_FOR_TARGET@
373ORIGINAL_NM_FOR_TARGET = @ORIGINAL_NM_FOR_TARGET@
374NM_FOR_TARGET = ./nm
375STRIP_FOR_TARGET := $(shell \
376  if [ -f $(objdir)/../binutils/strip ] ; then \
377    echo $(objdir)/../binutils/strip ; \
378  else \
379    if [ "$(host)" = "$(target)" ] ; then \
380      echo strip; \
381    else \
382       t='$(program_transform_name)'; echo strip | sed -e $$t ; \
383    fi; \
384  fi)
385
386# --------
387# UNSORTED
388# --------
389
390# Where to find some libiberty headers.
391HASHTAB_H   = $(srcdir)/../include/hashtab.h
392OBSTACK_H   = $(srcdir)/../include/obstack.h
393SPLAY_TREE_H= $(srcdir)/../include/splay-tree.h
394FIBHEAP_H   = $(srcdir)/../include/fibheap.h
395PARTITION_H = $(srcdir)/../include/partition.h
396MD5_H	    = $(srcdir)/../include/md5.h
397
398# Default native SYSTEM_HEADER_DIR, to be overridden by targets.
399NATIVE_SYSTEM_HEADER_DIR = /usr/include
400# Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
401CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
402
403# autoconf sets SYSTEM_HEADER_DIR to one of the above.
404# Purge it of unneccessary internal relative paths
405# to directories that might not exist yet.
406# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
407# Use single quotes here to avoid nested double- and backquotes, this
408# macro is also used in a double-quoted context.
409SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e 's,[^/]*/\.\.\/,,' -e ta`
410
411# Control whether to run fixproto and fixincludes.
412STMP_FIXPROTO = @STMP_FIXPROTO@
413STMP_FIXINC = @STMP_FIXINC@
414
415# Test to see whether <limits.h> exists in the system header files.
416LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
417
418# Directory for prefix to system directories, for
419# each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
420TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
421
422xmake_file=@xmake_file@
423tmake_file=@tmake_file@
424out_file=$(srcdir)/config/@out_file@
425out_object_file=@out_object_file@
426md_file=$(srcdir)/config/@md_file@
427tm_file_list=@tm_file_list@
428tm_include_list=@tm_include_list@
429tm_defines=@tm_defines@
430tm_p_file_list=@tm_p_file_list@
431tm_p_include_list=@tm_p_include_list@
432build_xm_file_list=@build_xm_file_list@
433build_xm_include_list=@build_xm_include_list@
434build_xm_defines=@build_xm_defines@
435host_xm_file_list=@host_xm_file_list@
436host_xm_include_list=@host_xm_include_list@
437host_xm_defines=@host_xm_defines@
438xm_file_list=@xm_file_list@
439xm_include_list=@xm_include_list@
440xm_defines=@xm_defines@
441lang_checks=check-gcc
442lang_opt_files=@lang_opt_files@ $(srcdir)/c.opt $(srcdir)/common.opt
443lang_specs_files=@lang_specs_files@
444lang_tree_files=@lang_tree_files@
445target_cpu_default=@target_cpu_default@
446GCC_THREAD_FILE=@thread_file@
447OBJC_BOEHM_GC=@objc_boehm_gc@
448GTHREAD_FLAGS=@gthread_flags@
449extra_modes_file=@extra_modes_file@
450extra_opt_files=@extra_opt_files@
451host_hook_obj=@out_host_hook_obj@
452
453# ------------------------
454# Installation directories
455# ------------------------
456
457# Common prefix for installation directories.
458# NOTE: This directory must exist when you start installation.
459prefix = @prefix@
460# Directory in which to put localized header files. On the systems with
461# gcc as the native cc, `local_prefix' may not be `prefix' which is
462# `/usr'.
463# NOTE: local_prefix *should not* default from prefix.
464local_prefix = @local_prefix@
465# Directory in which to put host dependent programs and libraries
466exec_prefix = @exec_prefix@
467# Directory in which to put the executable for the command `gcc'
468bindir = @bindir@
469# Directory in which to put the directories used by the compiler.
470libdir = @libdir@
471# Directory in which GCC puts its executables.
472libexecdir = @libexecdir@
473
474# --------
475# UNSORTED
476# --------
477
478# Directory in which the compiler finds libraries etc.
479libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(version)
480# Directory in which the compiler finds executables
481libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(version)
482# Used to produce a relative $(gcc_tooldir) in gcc.o
483unlibsubdir = ../../..
484# Directory in which to find other cross-compilation tools and headers.
485dollar = @dollar@
486# Used in install-cross.
487gcc_tooldir = @gcc_tooldir@
488# Used to install the shared libgcc.
489slibdir = @slibdir@
490# Since gcc_tooldir does not exist at build-time, use -B$(build_tooldir)/bin/
491build_tooldir = $(exec_prefix)/$(target_noncanonical)
492# Directory in which the compiler finds target-independent g++ includes.
493gcc_gxx_include_dir = @gcc_gxx_include_dir@
494# Directory to search for site-specific includes.
495local_includedir = $(local_prefix)/include
496includedir = $(prefix)/include
497# where the info files go
498infodir = @infodir@
499# Where cpp should go besides $prefix/bin if necessary
500cpp_install_dir = @cpp_install_dir@
501# where the locale files go
502datadir = @datadir@
503localedir = $(datadir)/locale
504# Extension (if any) to put in installed man-page filename.
505man1ext = .1
506man7ext = .7
507objext = .o
508exeext = @host_exeext@
509build_exeext = @build_exeext@
510
511# Directory in which to put man pages.
512mandir = @mandir@
513man1dir = $(mandir)/man1
514man7dir = $(mandir)/man7
515# Dir for temp files.
516tmpdir = /tmp
517
518datarootdir = @datarootdir@
519docdir = @docdir@
520# Directory in which to build HTML
521build_htmldir = $(objdir)/HTML/gcc-$(version)
522# Directory in which to put HTML
523htmldir = @htmldir@
524
525# Whether we were configured with NLS.
526USE_NLS = @USE_NLS@
527
528# Internationalization library.
529LIBINTL = @LIBINTL@
530LIBINTL_DEP = @LIBINTL_DEP@
531
532# Character encoding conversion library.
533LIBICONV = @LIBICONV@
534LIBICONV_DEP = @LIBICONV_DEP@
535
536# The GC method to be used on this system.
537GGC=@GGC@.o
538
539# If a supplementary library is being used for the GC.
540GGC_LIB=
541
542# libgcc.a may be built directly or via stmp-multilib,
543# and installed likewise.  Overridden by t-fragment.
544LIBGCC = libgcc.a
545INSTALL_LIBGCC = install-libgcc
546
547# "true" if the target C library headers are unavailable; "false"
548# otherwise.
549inhibit_libc = @inhibit_libc@
550ifeq ($(inhibit_libc),true)
551INHIBIT_LIBC_CFLAGS = -Dinhibit_libc
552endif
553
554# Options to use when compiling libgcc2.a.
555#
556LIBGCC2_DEBUG_CFLAGS = -g
557LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) \
558		 $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) \
559		 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
560		 $(INHIBIT_LIBC_CFLAGS)
561
562# Additional options to use when compiling libgcc2.a.
563# Some targets override this to -isystem include
564LIBGCC2_INCLUDES =
565
566# Additional target-dependent options for compiling libgcc2.a.
567TARGET_LIBGCC2_CFLAGS =
568
569# Options to use when compiling crtbegin/end.
570CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
571  -finhibit-size-directive -fno-inline-functions -fno-exceptions \
572  -fno-zero-initialized-in-bss -fno-toplevel-reorder \
573  $(INHIBIT_LIBC_CFLAGS)
574
575# Additional sources to handle exceptions; overridden by targets as needed.
576LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
577   $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
578LIB2ADDEHSTATIC = $(LIB2ADDEH)
579LIB2ADDEHSHARED = $(LIB2ADDEH)
580LIB2ADDEHDEP = $(UNWIND_H) unwind-pe.h unwind.inc unwind-dw2-fde.h unwind-dw2.h
581
582# Don't build libunwind by default.
583LIBUNWIND =
584LIBUNWINDDEP =
585SHLIBUNWIND_LINK =
586SHLIBUNWIND_INSTALL =
587
588# nm flags to list global symbols in libgcc object files.
589SHLIB_NM_FLAGS = -pg
590
591# List of extra executables that should be compiled for this target machine
592# that are used for compiling from source code to object code.
593# The rules for compiling them should be in the t-* file for the machine.
594EXTRA_PASSES =@extra_passes@
595
596# Like EXTRA_PASSES, but these are used when linking.
597EXTRA_PROGRAMS = @extra_programs@
598
599# List of extra object files that should be compiled for this target machine.
600# The rules for compiling them should be in the t-* file for the machine.
601EXTRA_PARTS = @extra_parts@
602
603# List of extra object files that should be compiled and linked with
604# compiler proper (cc1, cc1obj, cc1plus).
605EXTRA_OBJS = @extra_objs@
606
607# List of extra object files that should be compiled and linked with
608# the gcc driver.
609EXTRA_GCC_OBJS =@extra_gcc_objs@
610
611# List of additional header files to install.
612EXTRA_HEADERS =@extra_headers_list@
613
614# The configure script will set this to collect2$(exeext), except on a
615# (non-Unix) host which can not build collect2, for which it will be
616# set to empty.
617COLLECT2 = @collect2@
618
619# List of extra C and assembler files to add to static and shared libgcc2.
620# Assembler files should have names ending in `.asm'.
621LIB2FUNCS_EXTRA =
622
623# List of extra C and assembler files to add to static libgcc2.
624# Assembler files should have names ending in `.asm'.
625LIB2FUNCS_STATIC_EXTRA =
626
627# List of functions not to build from libgcc2.c.
628LIB2FUNCS_EXCLUDE =
629
630# Target sfp-machine.h file.
631SFP_MACHINE =
632
633# Program to convert libraries.
634LIBCONVERT =
635
636# Control whether header files are installed.
637INSTALL_HEADERS=install-headers install-mkheaders
638
639# Control whether Info documentation is built and installed.
640BUILD_INFO = @BUILD_INFO@
641
642# Control whether manpages generated by texi2pod.pl can be rebuilt.
643GENERATED_MANPAGES = @GENERATED_MANPAGES@
644
645# Additional directories of header files to run fixincludes on.
646# These should be directories searched automatically by default
647# just as /usr/include is.
648# *Do not* use this for directories that happen to contain
649# header files, but are not searched automatically by default.
650# On most systems, this is empty.
651OTHER_FIXINCLUDES_DIRS=
652
653# A list of all the language-specific executables.
654COMPILERS = cc1$(exeext) @all_compilers@
655
656# List of things which should already be built whenever we try to use xgcc
657# to compile anything (without linking).
658GCC_PASSES=xgcc$(exeext) cc1$(exeext) specs $(EXTRA_PASSES)
659
660# List of things which should already be built whenever we try to use xgcc
661# to link anything.
662GCC_PARTS=$(GCC_PASSES) $(LIBGCC) $(EXTRA_PROGRAMS) $(COLLECT2) $(EXTRA_PARTS)
663
664# Directory to link to, when using the target `maketest'.
665DIR = ../gcc
666
667# Native compiler for the build machine and its switches.
668CC_FOR_BUILD = @CC_FOR_BUILD@
669BUILD_CFLAGS= @BUILD_CFLAGS@ -DGENERATOR_FILE
670
671# Native linker and preprocessor flags.  For x-fragment overrides.
672BUILD_LDFLAGS=$(LDFLAGS)
673BUILD_CPPFLAGS=$(ALL_CPPFLAGS)
674
675# Actual name to use when installing a native compiler.
676GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
677GCC_TARGET_INSTALL_NAME := $(target_noncanonical)-$(shell echo gcc|sed '$(program_transform_name)')
678CPP_INSTALL_NAME := $(shell echo cpp|sed '$(program_transform_name)')
679PROTOIZE_INSTALL_NAME := $(shell echo protoize|sed '$(program_transform_name)')
680UNPROTOIZE_INSTALL_NAME := $(shell echo unprotoize|sed '$(program_transform_name)')
681GCOV_INSTALL_NAME := $(shell echo gcov|sed '$(program_transform_name)')
682GCCBUG_INSTALL_NAME := $(shell echo gccbug|sed '$(program_transform_name)')
683
684# Setup the testing framework, if you have one
685EXPECT = `if [ -f $${rootme}/../expect/expect ] ; then \
686            echo $${rootme}/../expect/expect ; \
687          else echo expect ; fi`
688
689RUNTEST = `if [ -f $${srcdir}/../dejagnu/runtest ] ; then \
690	       echo $${srcdir}/../dejagnu/runtest ; \
691	    else echo runtest; fi`
692RUNTESTFLAGS =
693
694# Extra symbols for fixproto to define when parsing headers.
695FIXPROTO_DEFINES =
696
697# Extra flags to use when compiling crt{begin,end}.o.
698CRTSTUFF_T_CFLAGS =
699
700# Extra flags to use when compiling [m]crt0.o.
701CRT0STUFF_T_CFLAGS =
702
703# "t" or nothing, for building multilibbed versions of, say, crtbegin.o.
704T =
705
706# Should T contain a `=', libgcc.mk will make T_TARGET, setting
707# $(T_TARGET) to the name of the actual target filename.
708T_TARGET =
709T_TARGET : $(T_TARGET)
710
711# This should name the specs file that we're going to install.  Target
712# Makefiles may override it and name another file to be generated from
713# the built-in specs and installed as the default spec, as long as
714# they also introduce a rule to generate a file name specs, to be used
715# at build time.
716SPECS = specs
717
718# End of variables for you to override.
719
720# GTM_H lists the config files that the generator files depend on,
721# while TM_H lists the ones ordinary gcc files depend on, which
722# includes several files generated by those generators.
723BCONFIG_H = bconfig.h $(build_xm_file_list)
724CONFIG_H  = config.h  $(host_xm_file_list)
725TCONFIG_H = tconfig.h $(xm_file_list)
726TM_P_H    = tm_p.h    $(tm_p_file_list)
727GTM_H     = tm.h      $(tm_file_list)
728TM_H      = $(GTM_H) insn-constants.h insn-flags.h options.h
729
730# Variables for version information.
731BASEVER     := $(srcdir)/BASE-VER  # 4.x.y
732DEVPHASE    := $(srcdir)/DEV-PHASE # experimental, prerelease, ""
733DATESTAMP   := $(srcdir)/DATESTAMP # YYYYMMDD or empty
734
735BASEVER_c   := $(shell cat $(BASEVER))
736DEVPHASE_c  := $(shell cat $(DEVPHASE))
737DATESTAMP_c := $(shell cat $(DATESTAMP))
738
739version     := $(BASEVER_c)
740
741# For use in version.c - double quoted strings, with appropriate
742# surrounding punctuation and spaces, and with the datestamp and
743# development phase collapsed to the empty string in release mode
744# (i.e. if DEVPHASE_c is empty).  The space immediately after the
745# comma in the $(if ...) constructs is significant - do not remove it.
746BASEVER_s   := "\"$(BASEVER_c)\""
747DEVPHASE_s  := "\"$(if $(DEVPHASE_c), ($(DEVPHASE_c)))\""
748DATESTAMP_s := "\"$(if $(DEVPHASE_c), $(DATESTAMP_c))\""
749
750# Shorthand variables for dependency lists.
751TARGET_H = $(TM_H) target.h insn-modes.h
752MACHMODE_H = machmode.h mode-classes.def insn-modes.h
753HOOKS_H = hooks.h $(MACHMODE_H)
754HOSTHOOKS_DEF_H = hosthooks-def.h $(HOOKS_H)
755LANGHOOKS_DEF_H = langhooks-def.h $(HOOKS_H)
756TARGET_DEF_H = target-def.h $(HOOKS_H)
757RTL_BASE_H = rtl.h rtl.def $(MACHMODE_H) reg-notes.def insn-notes.def \
758  input.h $(REAL_H) statistics.h vec.h
759RTL_H = $(RTL_BASE_H) genrtl.h
760PARAMS_H = params.h params.def
761BUILTINS_DEF = builtins.def sync-builtins.def omp-builtins.def
762TREE_H = tree.h tree.def $(MACHMODE_H) tree-check.h $(BUILTINS_DEF) \
763          input.h statistics.h vec.h treestruct.def $(HASHTAB_H)
764BASIC_BLOCK_H = basic-block.h bitmap.h sbitmap.h varray.h $(PARTITION_H) \
765          hard-reg-set.h cfghooks.h $(OBSTACK_H)
766GCOV_IO_H = gcov-io.h gcov-iov.h auto-host.h
767COVERAGE_H = coverage.h $(GCOV_IO_H)
768DEMANGLE_H = $(srcdir)/../include/demangle.h
769RECOG_H = recog.h
770ALIAS_H = alias.h
771EMIT_RTL_H = emit-rtl.h
772FLAGS_H = flags.h options.h
773FUNCTION_H = function.h $(TREE_H) $(HASHTAB_H)
774EXPR_H = expr.h insn-config.h $(FUNCTION_H) $(RTL_H) $(FLAGS_H) $(TREE_H) $(MACHMODE_H) $(EMIT_RTL_H)
775OPTABS_H = optabs.h insn-codes.h
776REGS_H = regs.h varray.h $(MACHMODE_H) $(OBSTACK_H) $(BASIC_BLOCK_H) $(FUNCTION_H)
777RESOURCE_H = resource.h hard-reg-set.h
778SCHED_INT_H = sched-int.h $(INSN_ATTR_H) $(BASIC_BLOCK_H) $(RTL_H)
779INTEGRATE_H = integrate.h $(VARRAY_H)
780CFGLAYOUT_H = cfglayout.h $(BASIC_BLOCK_H)
781CFGLOOP_H = cfgloop.h $(BASIC_BLOCK_H) $(RTL_H)
782IPA_UTILS_H = ipa-utils.h $(TREE_H) $(CGRAPH_H) 
783IPA_REFERENCE_H = ipa-reference.h bitmap.h $(TREE_H)  
784IPA_TYPE_ESCAPE_H = ipa-type-escape.h $(TREE_H)  
785CGRAPH_H = cgraph.h $(TREE_H)
786DF_H = df.h bitmap.h $(BASIC_BLOCK_H) alloc-pool.h
787DDG_H = ddg.h sbitmap.h $(DF_H)
788GCC_H = gcc.h version.h
789GGC_H = ggc.h gtype-desc.h
790TIMEVAR_H = timevar.h timevar.def
791INSN_ATTR_H = insn-attr.h $(srcdir)/insn-addr.h $(srcdir)/varray.h
792C_COMMON_H = c-common.h $(SPLAY_TREE_H) $(CPPLIB_H) $(GGC_H)
793C_PRAGMA_H = c-pragma.h $(CPPLIB_H)
794C_TREE_H = c-tree.h $(C_COMMON_H) toplev.h $(DIAGNOSTIC_H)
795SYSTEM_H = system.h hwint.h double-int.h $(srcdir)/../include/libiberty.h
796PREDICT_H = predict.h predict.def
797CPPLIB_H = $(srcdir)/../libcpp/include/line-map.h \
798	$(srcdir)/../libcpp/include/cpplib.h
799DECNUM_H = $(DECNUM)/decContext.h $(DECNUM)/decDPD.h $(DECNUM)/decNumber.h \
800	$(DECNUM)/decimal32.h $(DECNUM)/decimal64.h $(DECNUM)/decimal128.h
801MKDEPS_H = $(srcdir)/../libcpp/include/mkdeps.h
802SYMTAB_H = $(srcdir)/../libcpp/include/symtab.h
803CPP_ID_DATA_H = $(CPPLIB_H) $(srcdir)/../libcpp/include/cpp-id-data.h
804TREE_DUMP_H = tree-dump.h $(SPLAY_TREE_H)
805TREE_GIMPLE_H = tree-gimple.h tree-iterator.h
806TREE_FLOW_H = tree-flow.h tree-flow-inline.h tree-ssa-operands.h \
807		bitmap.h $(BASIC_BLOCK_H) hard-reg-set.h $(TREE_GIMPLE_H) \
808		$(HASHTAB_H) $(CGRAPH_H) $(IPA_REFERENCE_H)
809TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H) vecprim.h
810PRETTY_PRINT_H = pretty-print.h input.h $(OBSTACK_H)
811DIAGNOSTIC_H = diagnostic.h diagnostic.def $(PRETTY_PRINT_H) options.h
812C_PRETTY_PRINT_H = c-pretty-print.h $(PRETTY_PRINT_H) $(C_COMMON_H) $(TREE_H)
813SCEV_H = tree-scalar-evolution.h $(GGC_H) tree-chrec.h $(PARAMS_H)
814LAMBDA_H = lambda.h $(TREE_H) vec.h $(GGC_H)
815TREE_DATA_REF_H = tree-data-ref.h $(LAMBDA_H)
816VARRAY_H = varray.h $(MACHMODE_H) $(SYSTEM_H) coretypes.h $(TM_H)
817TREE_INLINE_H = tree-inline.h $(VARRAY_H) $(SPLAY_TREE_H)
818REAL_H = real.h $(MACHMODE_H)
819
820#
821# Now figure out from those variables how to compile and link.
822
823# IN_GCC distinguishes between code compiled into GCC itself and other
824# programs built during a bootstrap.
825# autoconf inserts -DCROSS_COMPILE if we are building a cross compiler.
826INTERNAL_CFLAGS = -DIN_GCC @CROSS@
827
828# This is the variable actually used when we compile. If you change this,
829# you probably want to update BUILD_CFLAGS in configure.ac
830ALL_CFLAGS = $(X_CFLAGS) $(T_CFLAGS) \
831  $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) $(XCFLAGS) @DEFS@
832
833# Likewise.  Put INCLUDES at the beginning: this way, if some autoconf macro
834# puts -I options in CPPFLAGS, our include files in the srcdir will always
835# win against random include files in /usr/include.
836ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
837
838# Build and host support libraries.
839LIBIBERTY = ../libiberty/libiberty.a
840BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/libiberty.a
841
842# Dependencies on the intl and portability libraries.
843LIBDEPS= $(CPPLIB) $(LIBIBERTY) $(LIBINTL_DEP) $(LIBICONV_DEP) $(LIBDECNUMBER)
844
845# Likewise, for use in the tools that must run on this machine
846# even if we are cross-building GCC.
847BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
848
849# How to link with both our special library facilities
850# and the system's installed libraries.
851LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER)
852
853# Any system libraries needed just for GNAT.
854SYSLIBS = @GNAT_LIBEXC@
855
856# Libs needed (at present) just for jcf-dump.
857LDEXP_LIB = @LDEXP_LIB@
858
859# Likewise, for use in the tools that must run on this machine
860# even if we are cross-building GCC.
861BUILD_LIBS = $(BUILD_LIBIBERTY)
862
863BUILD_RTL = build/rtl.o build/read-rtl.o build/ggc-none.o build/vec.o \
864	    build/min-insn-modes.o build/gensupport.o build/print-rtl.o
865BUILD_ERRORS = build/errors.o
866
867# Specify the directories to be searched for header files.
868# Both . and srcdir are used, in that order,
869# so that *config.h will be found in the compilation
870# subdirectory rather than in the source directory.
871# -I$(@D) and -I$(srcdir)/$(@D) cause the subdirectory of the file
872# currently being compiled, in both source trees, to be examined as well.
873# libintl.h will be found in ../intl if we are using the included libintl.
874INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
875	   -I$(srcdir)/../include @INCINTL@ \
876	   $(CPPINC) $(GMPINC) $(DECNUMINC)
877
878.c.o:
879	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
880
881#
882# Support for additional languages (other than C).
883# C can be supported this way too (leave for later).
884
885LANG_MAKEFRAGS = @all_lang_makefrags@
886LANG_MAKEFILES = @all_lang_makefiles@
887LANG_STAGESTUFF = @all_stagestuff@
888
889# Flags to pass to recursive makes.
890# CC is set by configure.  Hosts without symlinks need special handling
891# because we need CC="stage1/xgcc -Bstage1/" to work in the language
892# subdirectories.
893# ??? The choices here will need some experimenting with.
894
895export AR_FOR_TARGET
896export AR_CREATE_FOR_TARGET
897export AR_FLAGS_FOR_TARGET
898export AR_EXTRACT_FOR_TARGET
899export AWK
900export DESTDIR
901export GCC_FOR_TARGET
902export INCLUDES
903export INSTALL_DATA
904export LIB1ASMSRC
905export LIBGCC2_CFLAGS
906export LIPO_FOR_TARGET
907export MACHMODE_H
908export NM_FOR_TARGET
909export STRIP_FOR_TARGET
910export RANLIB_FOR_TARGET
911export libsubdir
912export slibdir
913
914ORDINARY_FLAGS_TO_PASS = \
915	"BISON=$(BISON)" \
916	"BISONFLAGS=$(BISONFLAGS)" \
917	"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
918	"LDFLAGS=$(LDFLAGS)" \
919	"FLEX=$(FLEX)" \
920	"FLEXFLAGS=$(FLEXFLAGS)" \
921	"LN=$(LN)" \
922	"LN_S=$(LN_S)" \
923	"MAKEINFO=$(MAKEINFO)" \
924	"MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \
925	"MAKEOVERRIDES=" \
926	"SHELL=$(SHELL)" \
927	"exeext=$(exeext)" \
928	"build_exeext=$(build_exeext)" \
929	"objext=$(objext)" \
930	"exec_prefix=$(exec_prefix)" \
931	"prefix=$(prefix)" \
932	"local_prefix=$(local_prefix)" \
933	"gxx_include_dir=$(gcc_gxx_include_dir)" \
934	"build_tooldir=$(build_tooldir)" \
935	"gcc_tooldir=$(gcc_tooldir)" \
936	"bindir=$(bindir)" \
937	"libexecsubdir=$(libsubdir)" \
938	"datadir=$(datadir)" \
939	"localedir=$(localedir)"
940FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) "CC=@cc_set_by_configure@" \
941	"STAGE_PREFIX=@stage_prefix_set_by_configure@"
942PREPEND_DOTDOT_TO_RELATIVE_PATHS = sed \
943	-e 's|^ *[^ /][^ /]*/|%&|' \
944	-e 's| -B| -B%|g' \
945	-e 's|% *[^- /]|%&|g' \
946	-e 's|%% *|../|g' \
947	-e 's|%||g'
948SUBDIR_FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) \
949	"CC=`echo @quoted_cc_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`" \
950	"STAGE_PREFIX=`echo @quoted_stage_prefix_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`"
951#
952# Lists of files for various purposes.
953
954# All option source files
955ALL_OPT_FILES=$(lang_opt_files) $(extra_opt_files)
956
957# Target specific, C specific object file
958C_TARGET_OBJS=@c_target_objs@
959
960# Target specific, C++ specific object file
961CXX_TARGET_OBJS=@cxx_target_objs@
962
963# Object files for gcc driver.
964GCC_OBJS = gcc.o opts-common.o gcc-options.o
965
966# Language-specific object files for C and Objective C.
967C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
968  c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \
969  c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o \
970  c-objc-common.o c-dump.o c-pch.o c-parser.o $(C_TARGET_OBJS) \
971  c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o
972
973# Language-specific object files for C.
974C_OBJS = c-lang.o stub-objc.o $(C_AND_OBJC_OBJS)
975
976# Language-independent object files.
977OBJS-common = \
978 double-int.o tree-chrec.o tree-scalar-evolution.o tree-data-ref.o	   \
979 tree-cfg.o tree-dfa.o tree-eh.o tree-ssa.o tree-optimize.o tree-gimple.o  \
980 gimplify.o tree-pretty-print.o tree-into-ssa.o				   \
981 tree-outof-ssa.o tree-ssa-ccp.o tree-vn.o tree-ssa-uncprop.o		   \
982 tree-ssa-dce.o  tree-ssa-copy.o tree-nrv.o tree-ssa-copyrename.o	   \
983 tree-ssa-pre.o tree-ssa-live.o tree-ssa-operands.o tree-ssa-alias.o       \
984 tree-ssa-phiopt.o tree-ssa-forwprop.o tree-nested.o tree-ssa-dse.o	   \
985 tree-ssa-dom.o domwalk.o tree-tailcall.o gimple-low.o tree-iterator.o	   \
986 omp-low.o tree-phinodes.o tree-ssanames.o tree-sra.o tree-complex.o	   \
987 tree-vect-generic.o tree-ssa-loop.o tree-ssa-loop-niter.o		   \
988 tree-ssa-loop-manip.o tree-ssa-threadupdate.o tree-ssa-threadedge.o	   \
989 tree-vectorizer.o tree-vect-analyze.o tree-vect-transform.o		   \
990 tree-vect-patterns.o tree-ssa-loop-prefetch.o				   \
991 tree-ssa-loop-ivcanon.o tree-ssa-propagate.o tree-ssa-address.o	   \
992 tree-ssa-math-opts.o							   \
993 tree-ssa-loop-ivopts.o tree-if-conv.o tree-ssa-loop-unswitch.o		   \
994 alias.o bb-reorder.o bitmap.o builtins.o caller-save.o calls.o	  	   \
995 cfg.o cfganal.o cfgbuild.o cfgcleanup.o cfglayout.o cfgloop.o		   \
996 cfgloopanal.o cfgloopmanip.o loop-init.o loop-unswitch.o loop-unroll.o	   \
997 cfgrtl.o combine.o conflict.o convert.o coverage.o cse.o cselib.o 	   \
998 dbxout.o ddg.o tree-ssa-loop-ch.o loop-invariant.o tree-ssa-loop-im.o	   \
999 debug.o df-core.o df-problems.o df-scan.o dfp.o diagnostic.o dojump.o     \
1000 dominance.o loop-doloop.o	   					   \
1001 dwarf2asm.o dwarf2out.o emit-rtl.o except.o explow.o loop-iv.o		   \
1002 expmed.o expr.o final.o flow.o fold-const.o function.o gcse.o		   \
1003 genrtl.o ggc-common.o global.o graph.o gtype-desc.o			   \
1004 haifa-sched.o hooks.o ifcvt.o insn-attrtab.o insn-emit.o insn-modes.o	   \
1005 insn-extract.o insn-opinit.o insn-output.o insn-peep.o insn-recog.o	   \
1006 integrate.o intl.o jump.o  langhooks.o lcm.o lists.o local-alloc.o  	   \
1007 mode-switching.o modulo-sched.o optabs.o options.o opts.o opts-common.o \
1008 params.o postreload.o postreload-gcse.o predict.o			   \
1009 insn-preds.o insn-automata.o pointer-set.o 			   	   \
1010 print-rtl.o print-tree.o profile.o value-prof.o var-tracking.o		   \
1011 real.o recog.o reg-stack.o regclass.o regmove.o regrename.o		   \
1012 reload.o reload1.o reorg.o resource.o rtl.o rtlanal.o rtl-error.o	   \
1013 sbitmap.o sched-deps.o sched-ebb.o sched-rgn.o sched-vis.o sdbout.o	   \
1014 see.o simplify-rtx.o sreal.o stmt.o stor-layout.o stringpool.o		   \
1015 struct-equiv.o targhooks.o timevar.o toplev.o tracer.o tree.o tree-dump.o \
1016 varasm.o varray.o vec.o version.o vmsdbgout.o xcoffout.o alloc-pool.o	   \
1017 et-forest.o cfghooks.o bt-load.o pretty-print.o $(GGC) web.o passes.o	   \
1018 tree-profile.o rtlhooks.o cfgexpand.o lambda-mat.o    			   \
1019 lambda-trans.o	lambda-code.o tree-loop-linear.o tree-ssa-sink.o 	   \
1020 tree-vrp.o tree-stdarg.o tree-cfgcleanup.o tree-ssa-reassoc.o		   \
1021 tree-ssa-structalias.o tree-object-size.o 				   \
1022 rtl-factoring.o
1023
1024
1025OBJS-md = $(out_object_file)
1026OBJS-archive = $(EXTRA_OBJS) $(host_hook_obj) tree-inline.o		   \
1027  cgraph.o cgraphunit.o tree-nomudflap.o ipa.o ipa-inline.o                \
1028  ipa-utils.o ipa-reference.o ipa-pure-const.o ipa-type-escape.o           \
1029  ipa-prop.o ipa-cp.o
1030
1031OBJS = $(OBJS-common) $(out_object_file) $(OBJS-archive)
1032
1033OBJS-onestep = libbackend.o $(OBJS-archive)
1034
1035BACKEND = main.o @TREEBROWSER@ libbackend.a $(CPPLIB) $(LIBDECNUMBER)
1036
1037# Files to be copied after each stage in building.
1038STAGECOPYSTUFF = insn-flags.h insn-config.h insn-codes.h \
1039 insn-output.c insn-recog.c insn-emit.c insn-extract.c insn-peep.c \
1040 insn-attr.h insn-attrtab.c insn-opinit.c insn-preds.c insn-constants.h \
1041 tm-preds.h tm-constrs.h \
1042 tree-check.h min-insn-modes.c insn-modes.c insn-modes.h \
1043 genrtl.c genrtl.h gt-*.h gtype-*.h gtype-desc.c gtyp-gen.h
1044
1045# Files to be moved away after each stage in building.
1046STAGEMOVESTUFF = *$(objext) s-* \
1047 xgcc$(exeext) cpp$(exeext) cc1$(exeext) cc1*-dummy$(exeext) $(EXTRA_PASSES) \
1048 $(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross$(exeext) \
1049 protoize$(exeext) unprotoize$(exeext) \
1050 $(SPECS) collect2$(exeext) \
1051 gcov-iov$(build_exeext) gcov$(exeext) gcov-dump$(exeext) \
1052 *.[0-9][0-9].* *.[si] *-checksum.c libbackend.a libgcc.mk \
1053 $(LANG_STAGESTUFF)
1054
1055# Defined in libgcc2.c, included only in the static library.
1056LIB2FUNCS_ST = _eprintf __gcc_bcmp
1057
1058# Defined in libgcov.c, included only in gcov library
1059LIBGCOV = _gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta \
1060    _gcov_fork _gcov_execl _gcov_execlp _gcov_execle \
1061    _gcov_execv _gcov_execvp _gcov_execve \
1062    _gcov_interval_profiler _gcov_pow2_profiler _gcov_one_value_profiler
1063
1064FPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \
1065    _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \
1066    _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \
1067    _sf_to_df _sf_to_tf _thenan_sf _sf_to_usi _usi_to_sf
1068
1069DPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \
1070    _fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \
1071    _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \
1072    _df_to_sf _df_to_tf _thenan_df _df_to_usi _usi_to_df
1073
1074TPBIT_FUNCS = _pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf \
1075    _fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf \
1076    _lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf \
1077    _tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf
1078
1079D32PBIT_FUNCS = _addsub_sd _div_sd _mul_sd _plus_sd _minus_sd \
1080	_eq_sd _ne_sd _lt_sd _gt_sd _le_sd _ge_sd \
1081	_sd_to_si _sd_to_di _sd_to_usi _sd_to_udi \
1082	_si_to_sd _di_to_sd _usi_to_sd _udi_to_sd \
1083	_sd_to_sf _sd_to_df _sd_to_xf _sf_to_sd _df_to_sd _xf_to_sd \
1084	_sd_to_dd _sd_to_td _unord_sd _conv_sd
1085
1086D64PBIT_FUNCS = _addsub_dd _div_dd _mul_dd _plus_dd _minus_dd \
1087	_eq_dd _ne_dd _lt_dd _gt_dd _le_dd _ge_dd \
1088	_dd_to_si _dd_to_di _dd_to_usi _dd_to_udi \
1089	_si_to_dd _di_to_dd _usi_to_dd _udi_to_dd \
1090	_dd_to_sf _dd_to_df _dd_to_xf \
1091	_sf_to_dd _df_to_dd _xf_to_dd \
1092	_dd_to_sd _dd_to_td _unord_dd _conv_dd
1093
1094D128PBIT_FUNCS = _addsub_td _div_td _mul_td _plus_td _minus_td \
1095	_eq_td _ne_td _lt_td _gt_td _le_td _ge_td \
1096	_td_to_si _td_to_di _td_to_usi _td_to_udi \
1097	_si_to_td _di_to_td _usi_to_td _udi_to_td \
1098	_td_to_sf _td_to_df _td_to_xf \
1099	_sf_to_td _df_to_td _xf_to_td \
1100	_td_to_sd _td_to_dd _unord_td _conv_td
1101
1102# These might cause a divide overflow trap and so are compiled with
1103# unwinder info.
1104LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4
1105
1106#
1107# Language makefile fragments.
1108
1109# The following targets define the interface between us and the languages.
1110#
1111# all.cross, start.encap, rest.encap,
1112# install-common, install-info, install-man,
1113# uninstall,
1114# mostlyclean, clean, distclean, maintainer-clean,
1115# stage1, stage2, stage3, stage4
1116#
1117# Each language is linked in with a series of hooks.  The name of each
1118# hooked is "lang.${target_name}" (eg: lang.info).  Configure computes
1119# and adds these here.  We use double-colon rules for some of the hooks;
1120# double-colon rules should be preferred for any new hooks.
1121
1122# language hooks, generated by configure
1123@language_hooks@
1124
1125# per-language makefile fragments
1126ifneq ($(LANG_MAKEFRAGS),)
1127include $(LANG_MAKEFRAGS)
1128endif
1129
1130# target and host overrides must follow the per-language makefile fragments
1131# so they can override or augment language-specific variables
1132
1133# target overrides
1134ifneq ($(tmake_file),)
1135include $(tmake_file)
1136endif
1137
1138# host overrides
1139ifneq ($(xmake_file),)
1140include $(xmake_file)
1141endif
1142
1143#
1144
1145# -----------------------------
1146# Rebuilding this configuration
1147# -----------------------------
1148
1149# On the use of stamps:
1150# Consider the example of tree-check.h. It is constructed with build/gencheck.
1151# A simple rule to build tree-check.h would be
1152# tree-check.h: build/gencheck$(build_exeext)
1153#	$(RUN_GEN) build/gencheck$(build_exeext) > tree-check.h
1154#
1155# but tree-check.h doesn't change every time gencheck changes. It would the
1156# nice if targets that depend on tree-check.h wouldn't be rebuild
1157# unnecessarily when tree-check.h is unchanged. To make this, tree-check.h
1158# must not be overwritten with a identical copy. One solution is to use a
1159# temporary file
1160# tree-check.h: build/gencheck$(build_exeext)
1161#	$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
1162#	$(SHELL) $(srcdir)/../move-if-change tmp-check.h tree-check.h
1163#
1164# This solution has a different problem. Since the time stamp of tree-check.h
1165# is unchanged, make will try to update tree-check.h every time it runs.
1166# To prevent this, one can add a stamp
1167# tree-check.h: s-check
1168# s-check : build/gencheck$(build_exeext)
1169#	$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
1170#	$(SHELL) $(srcdir)/../move-if-change tmp-check.h tree-check.h
1171#	$(STAMP) s-check
1172#
1173# The problem with this solution is that make thinks that tree-check.h is
1174# always unchanged. Make must be deceived into thinking that tree-check.h is
1175# rebuild by the "tree-check.h: s-check" rule. To do this, add a dummy command:
1176# tree-check.h: s-check; @true
1177# s-check : build/gencheck$(build_exeext)
1178#	$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
1179#	$(SHELL) $(srcdir)/../move-if-change tmp-check.h tree-check.h
1180#	$(STAMP) s-check
1181#
1182# This is what is done in this makefile. Note that mkconfig.sh has a
1183# move-if-change built-in
1184
1185Makefile: config.status $(srcdir)/Makefile.in $(LANG_MAKEFRAGS)
1186	LANGUAGES="$(CONFIG_LANGUAGES)" \
1187	CONFIG_HEADERS= \
1188	CONFIG_SHELL="$(SHELL)" \
1189	CONFIG_FILES=$@ $(SHELL) config.status
1190
1191config.h: cs-config.h ; @true
1192bconfig.h: cs-bconfig.h ; @true
1193tconfig.h: cs-tconfig.h ; @true
1194tm.h: cs-tm.h ; @true
1195tm_p.h: cs-tm_p.h ; @true
1196
1197cs-config.h: Makefile
1198	TARGET_CPU_DEFAULT="" \
1199	HEADERS="$(host_xm_include_list)" DEFINES="$(host_xm_defines)" \
1200	$(SHELL) $(srcdir)/mkconfig.sh config.h
1201
1202cs-bconfig.h: Makefile
1203	TARGET_CPU_DEFAULT="" \
1204	HEADERS="$(build_xm_include_list)" DEFINES="$(build_xm_defines)" \
1205	$(SHELL) $(srcdir)/mkconfig.sh bconfig.h
1206
1207cs-tconfig.h: Makefile
1208	TARGET_CPU_DEFAULT="" \
1209	HEADERS="$(xm_include_list)" DEFINES="USED_FOR_TARGET $(xm_defines)" \
1210	$(SHELL) $(srcdir)/mkconfig.sh tconfig.h
1211
1212cs-tm.h: Makefile
1213	TARGET_CPU_DEFAULT="$(target_cpu_default)" \
1214	HEADERS="$(tm_include_list)" DEFINES="$(tm_defines)" \
1215	$(SHELL) $(srcdir)/mkconfig.sh tm.h
1216
1217cs-tm_p.h: Makefile
1218	TARGET_CPU_DEFAULT="" \
1219	HEADERS="$(tm_p_include_list)" DEFINES="" \
1220	$(SHELL) $(srcdir)/mkconfig.sh tm_p.h
1221
1222# Don't automatically run autoconf, since configure.ac might be accidentally
1223# newer than configure.  Also, this writes into the source directory which
1224# might be on a read-only file system.  If configured for maintainer mode
1225# then do allow autoconf to be run.
1226
1227$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/aclocal.m4 \
1228  $(srcdir)/acinclude.m4
1229	(cd $(srcdir) && autoconf)
1230
1231gccbug:	$(srcdir)/gccbug.in
1232	CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status
1233
1234mklibgcc: $(srcdir)/mklibgcc.in
1235	CONFIG_FILES=mklibgcc CONFIG_HEADERS= ./config.status
1236
1237# cstamp-h.in controls rebuilding of config.in.
1238# It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't
1239# delete it.  A stamp file is needed as autoheader won't update the file if
1240# nothing has changed.
1241# It remains in the source directory and is part of the distribution.
1242# This follows what is done in shellutils, fileutils, etc.
1243# "echo timestamp" is used instead of touch to be consistent with other
1244# packages that use autoconf (??? perhaps also to avoid problems with patch?).
1245# ??? Newer versions have a maintainer mode that may be useful here.
1246
1247# Don't run autoheader automatically either.
1248# Only run it if maintainer mode is enabled.
1249@MAINT@ $(srcdir)/config.in: $(srcdir)/cstamp-h.in
1250@MAINT@ $(srcdir)/cstamp-h.in: $(srcdir)/configure.ac
1251@MAINT@	(cd $(srcdir) && autoheader)
1252@MAINT@	@rm -f $(srcdir)/cstamp-h.in
1253@MAINT@	echo timestamp > $(srcdir)/cstamp-h.in
1254auto-host.h: cstamp-h ; @true
1255cstamp-h: config.in config.status
1256	CONFIG_HEADERS=auto-host.h:config.in \
1257	CONFIG_FILES= \
1258	LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status
1259
1260# Really, really stupid make features, such as SUN's KEEP_STATE, may force
1261# a target to build even if it is up-to-date.  So we must verify that
1262# config.status does not exist before failing.
1263config.status: $(srcdir)/configure $(srcdir)/config.gcc
1264	@if [ ! -f config.status ] ; then \
1265	  echo You must configure gcc.  Look at http://gcc.gnu.org/install/ for details.; \
1266	  false; \
1267	else \
1268	  LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status --recheck; \
1269	fi
1270
1271# --------
1272# UNSORTED
1273# --------
1274
1275all.internal: start.encap rest.encap doc
1276# This is what to compile if making a cross-compiler.
1277all.cross: native gcc-cross$(exeext) cpp$(exeext) specs \
1278	$(LIBGCC) $(EXTRA_PARTS) lang.all.cross doc @GENINSRC@ srcextra
1279# This is what must be made before installing GCC and converting libraries.
1280start.encap: native xgcc$(exeext) cpp$(exeext) specs \
1281	xlimits.h lang.start.encap @GENINSRC@ srcextra
1282# These can't be made until after GCC can run.
1283rest.encap: $(STMP_FIXPROTO) $(LIBGCC) $(EXTRA_PARTS) lang.rest.encap
1284# This is what is made with the host's compiler
1285# whether making a cross compiler or not.
1286native: config.status auto-host.h build-@POSUB@ $(LANGUAGES) \
1287	$(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(COLLECT2)
1288
1289# Define the names for selecting languages in LANGUAGES.
1290c: cc1$(exeext)
1291
1292# Tell GNU make these are phony targets.
1293.PHONY: c proto
1294
1295# On the target machine, finish building a cross compiler.
1296# This does the things that can't be done on the host machine.
1297rest.cross: $(LIBGCC) specs
1298
1299# Recompile all the language-independent object files.
1300# This is used only if the user explicitly asks for it.
1301compilations: $(BACKEND)
1302
1303# This archive is strictly for the host.
1304libbackend.a: $(OBJS@onestep@)
1305	-rm -rf libbackend.a
1306	$(AR) $(AR_FLAGS) libbackend.a $(OBJS@onestep@)
1307	-$(RANLIB) $(RANLIB_FLAGS) libbackend.a
1308
1309# We call this executable `xgcc' rather than `gcc'
1310# to avoid confusion if the current directory is in the path
1311# and CC is `gcc'.  It is renamed to `gcc' when it is installed.
1312xgcc$(exeext): $(GCC_OBJS) gccspec.o version.o intl.o prefix.o \
1313   version.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
1314	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) gccspec.o \
1315	  intl.o prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS)
1316
1317# cpp is to cpp0 as gcc is to cc1.
1318# The only difference from xgcc is that it's linked with cppspec.o
1319# instead of gccspec.o.
1320cpp$(exeext): $(GCC_OBJS) cppspec.o version.o intl.o prefix.o \
1321   version.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
1322	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) cppspec.o \
1323	  intl.o prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS)
1324
1325# Create links to binutils, especially for in-tree builds, to make -B.
1326# use them.  We need hard links so that directories can be shuffled
1327# during toplevel bootstrap.
1328# Go through an additional indirection, because the file we create
1329# can be either `sometool' (if it is a script) or `sometool$(exeext)'
1330# (if it is a hard link).
1331stamp-as: $(ORIGINAL_AS_FOR_TARGET)
1332	@echo creating as; \
1333	case "$(ORIGINAL_AS_FOR_TARGET)" in \
1334	  ./as) ;; \
1335	  ../*) \
1336	     rm -f as$(exeext); \
1337	     echo $(LN) $< as$(exeext); \
1338	     $(LN) $< as$(exeext) || cp $< as$(exeext) ;; \
1339	  *) \
1340	     rm -f as; \
1341	     echo '#!$(SHELL)' > as; \
1342	     echo 'exec $(ORIGINAL_AS_FOR_TARGET) "$$@"' >> as ; \
1343	     chmod +x as ;; \
1344	esac
1345	echo timestamp > $@
1346
1347stamp-collect-ld: $(ORIGINAL_LD_FOR_TARGET)
1348	@echo creating collect-ld; \
1349	case "$(ORIGINAL_LD_FOR_TARGET)" in \
1350	  ./collect-ld) ;; \
1351	  ../*) \
1352	     rm -f collect-ld$(exeext); \
1353	     echo $(LN) $< collect-ld$(exeext); \
1354	     $(LN) $< collect-ld$(exeext) || cp $< collect-ld$(exeext) ;; \
1355	  *) \
1356	     rm -f collect-ld$(exeext); \
1357	     echo '#!$(SHELL)' > collect-ld; \
1358	     echo 'exec $(ORIGINAL_LD_FOR_TARGET) "$$@"' >> collect-ld ; \
1359	     chmod +x collect-ld ;; \
1360	esac
1361	echo timestamp > $@
1362
1363stamp-nm: $(ORIGINAL_NM_FOR_TARGET)
1364	@echo creating nm; \
1365	case "$(ORIGINAL_NM_FOR_TARGET)" in \
1366	  ./nm) ;; \
1367	  ../*) \
1368	     rm -f nm$(exeext); \
1369	     echo $(LN) $< nm$(exeext); \
1370	     $(LN) $< nm$(exeext) || cp $< nm$(exeext) ;; \
1371	  *) \
1372	     rm -f nm$(exeext); \
1373	     echo '#!$(SHELL)' > nm; \
1374	     echo 'exec $(ORIGINAL_NM_FOR_TARGET) "$$@"' >> nm ; \
1375	     chmod +x nm ;; \
1376	esac
1377	echo timestamp > $@
1378
1379# Dump a specs file to make -B./ read these specs over installed ones.
1380$(SPECS): xgcc$(exeext)
1381	$(GCC_FOR_TARGET) -dumpspecs > tmp-specs
1382	mv tmp-specs $(SPECS)
1383
1384# We do want to create an executable named `xgcc', so we can use it to
1385# compile libgcc2.a.
1386# Also create gcc-cross, so that install-common will install properly.
1387gcc-cross$(exeext): xgcc$(exeext)
1388	cp xgcc$(exeext) gcc-cross$(exeext)
1389
1390dummy-checksum.o : dummy-checksum.c
1391
1392cc1-dummy$(exeext): $(C_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
1393	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) dummy-checksum.o \
1394	  $(BACKEND) $(LIBS)
1395
1396cc1-checksum.c : cc1-dummy$(exeext) build/genchecksum$(build_exeext)
1397	build/genchecksum$(build_exeext) cc1-dummy$(exeext) > $@
1398
1399cc1-checksum.o : cc1-checksum.c
1400
1401cc1$(exeext): $(C_OBJS) cc1-checksum.o $(BACKEND) $(LIBDEPS)
1402	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) cc1-checksum.o \
1403	  $(BACKEND) $(LIBS)
1404
1405# Build the version of limits.h that we will install.
1406xlimits.h: glimits.h limitx.h limity.h
1407	if $(LIMITS_H_TEST) ; then \
1408	  cat $(srcdir)/limitx.h $(srcdir)/glimits.h $(srcdir)/limity.h > tmp-xlimits.h; \
1409	else \
1410	  cat $(srcdir)/glimits.h > tmp-xlimits.h; \
1411	fi
1412	mv tmp-xlimits.h xlimits.h
1413#
1414# Build libgcc.a.
1415
1416LIB2ADD = $(LIB2FUNCS_EXTRA)
1417LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA)
1418
1419libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) specs \
1420		xgcc$(exeext) stamp-as stamp-collect-ld stamp-nm
1421	objext='$(objext)' \
1422	LIB1ASMFUNCS='$(LIB1ASMFUNCS)' \
1423	LIB2FUNCS_ST='$(LIB2FUNCS_ST)' \
1424	LIB2FUNCS_EXCLUDE='$(LIB2FUNCS_EXCLUDE)' \
1425	LIBGCOV='$(LIBGCOV)' \
1426	LIB2ADD='$(LIB2ADD)' \
1427	LIB2ADD_ST='$(LIB2ADD_ST)' \
1428	LIB2ADDEH='$(LIB2ADDEH)' \
1429	LIB2ADDEHSTATIC='$(LIB2ADDEHSTATIC)' \
1430	LIB2ADDEHSHARED='$(LIB2ADDEHSHARED)' \
1431	LIB2ADDEHDEP='$(LIB2ADDEHDEP)' \
1432	LIB2_SIDITI_CONV_FUNCS='$(LIB2_SIDITI_CONV_FUNCS)' \
1433	LIBUNWIND='$(LIBUNWIND)' \
1434	LIBUNWINDDEP='$(LIBUNWINDDEP)' \
1435	SHLIBUNWIND_LINK='$(SHLIBUNWIND_LINK)' \
1436	SHLIBUNWIND_INSTALL='$(SHLIBUNWIND_INSTALL)' \
1437	FPBIT='$(FPBIT)' \
1438	FPBIT_FUNCS='$(FPBIT_FUNCS)' \
1439	LIB2_DIVMOD_FUNCS='$(LIB2_DIVMOD_FUNCS)' \
1440	DPBIT='$(DPBIT)' \
1441	DPBIT_FUNCS='$(DPBIT_FUNCS)' \
1442	TPBIT='$(TPBIT)' \
1443	TPBIT_FUNCS='$(TPBIT_FUNCS)' \
1444	DFP_ENABLE='$(DFP_ENABLE)' \
1445	DFP_CFLAGS='$(DFP_CFLAGS)' \
1446	D32PBIT='$(D32PBIT)' \
1447	D32PBIT_FUNCS='$(D32PBIT_FUNCS)' \
1448	D64PBIT='$(D64PBIT)' \
1449	D64PBIT_FUNCS='$(D64PBIT_FUNCS)' \
1450	D128PBIT='$(D128PBIT)' \
1451	D128PBIT_FUNCS='$(D128PBIT_FUNCS)' \
1452	MULTILIBS=`$(GCC_FOR_TARGET) --print-multi-lib` \
1453	EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \
1454	SHLIB_LINK='$(SHLIB_LINK)' \
1455	SHLIB_INSTALL='$(SHLIB_INSTALL)' \
1456	SHLIB_EXT='$(SHLIB_EXT)' \
1457	SHLIB_MULTILIB='$(SHLIB_MULTILIB)' \
1458	SHLIB_MKMAP='$(SHLIB_MKMAP)' \
1459	SHLIB_MKMAP_OPTS='$(SHLIB_MKMAP_OPTS)' \
1460	SHLIB_MAPFILES='$(SHLIB_MAPFILES)' \
1461	SHLIB_NM_FLAGS='$(SHLIB_NM_FLAGS)' \
1462	MULTILIB_OSDIRNAMES='$(MULTILIB_OSDIRNAMES)' \
1463	ASM_HIDDEN_OP='$(ASM_HIDDEN_OP)' \
1464	GCC_FOR_TARGET='$(GCC_FOR_TARGET)' \
1465	mkinstalldirs='$(mkinstalldirs)' \
1466	  $(SHELL) mklibgcc > tmp-libgcc.mk
1467	mv tmp-libgcc.mk libgcc.mk
1468
1469# All the things that might cause us to want to recompile bits of libgcc.
1470LIBGCC_DEPS = $(GCC_PASSES) stmp-int-hdrs $(STMP_FIXPROTO) \
1471	libgcc.mk $(srcdir)/libgcc2.c $(srcdir)/libgcov.c $(TCONFIG_H) \
1472	$(MACHMODE_H) longlong.h gbl-ctors.h config.status $(srcdir)/libgcc2.h \
1473	tsystem.h $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \
1474	config/dfp-bit.h config/dfp-bit.c \
1475	$(LIB2ADD_ST) $(LIB2ADDEH) $(LIB2ADDEHDEP) $(EXTRA_PARTS) \
1476	$(srcdir)/config/$(LIB1ASMSRC) \
1477	$(srcdir)/gcov-io.h $(srcdir)/gcov-io.c gcov-iov.h $(SFP_MACHINE)
1478
1479libgcov.a: libgcc.a; @true
1480
1481libgcc.a: $(LIBGCC_DEPS)
1482	$(MAKE) \
1483	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
1484	  CONFIG_H="$(TCONFIG_H)" TM_H="$(TM_H)" \
1485	  INCLUDES="$(INCLUDES)" \
1486	  MAKEOVERRIDES= \
1487	  -f libgcc.mk all
1488
1489# Use the genmultilib shell script to generate the information the gcc
1490# driver program needs to select the library directory based on the
1491# switches.
1492multilib.h: s-mlib; @true
1493s-mlib: $(srcdir)/genmultilib Makefile
1494	if test @enable_multilib@ = yes \
1495	   || test -n "$(MULTILIB_OSDIRNAMES)"; then \
1496	  $(SHELL) $(srcdir)/genmultilib \
1497	    "$(MULTILIB_OPTIONS)" \
1498	    "$(MULTILIB_DIRNAMES)" \
1499	    "$(MULTILIB_MATCHES)" \
1500	    "$(MULTILIB_EXCEPTIONS)" \
1501	    "$(MULTILIB_EXTRA_OPTS)" \
1502	    "$(MULTILIB_EXCLUSIONS)" \
1503	    "$(MULTILIB_OSDIRNAMES)" \
1504	    "@enable_multilib@" \
1505	    > tmp-mlib.h; \
1506	else \
1507	  $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' '' no \
1508	    > tmp-mlib.h; \
1509	fi
1510	$(SHELL) $(srcdir)/../move-if-change tmp-mlib.h multilib.h
1511	$(STAMP) s-mlib
1512
1513# Build multiple copies of libgcc.a, one for each target switch.
1514stmp-multilib: $(LIBGCC_DEPS)
1515	$(MAKE) \
1516	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
1517	  CONFIG_H="$(CONFIG_H)" \
1518	  MAKEOVERRIDES= \
1519	  -f libgcc.mk all
1520	$(STAMP) stmp-multilib
1521
1522# Compile two additional files that are linked with every program
1523# linked using GCC on systems using COFF or ELF, for the sake of C++
1524# constructors.
1525$(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1526  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
1527	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
1528	  -c $(srcdir)/crtstuff.c -DCRT_BEGIN \
1529	  -o $(T)crtbegin$(objext)
1530
1531$(T)crtend.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1532  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
1533	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
1534	  -c $(srcdir)/crtstuff.c -DCRT_END \
1535	  -o $(T)crtend$(objext)
1536
1537# These are versions of crtbegin and crtend for shared libraries.
1538$(T)crtbeginS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1539  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
1540	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
1541	  -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O \
1542	  -o $(T)crtbeginS$(objext)
1543
1544$(T)crtendS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1545  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
1546	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
1547	  -c $(srcdir)/crtstuff.c -DCRT_END -DCRTSTUFFS_O \
1548	  -o $(T)crtendS$(objext)
1549
1550# This is a version of crtbegin for -static links.
1551$(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1552  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
1553	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
1554	  -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \
1555	  -o $(T)crtbeginT$(objext)
1556
1557# Compile the start modules crt0.o and mcrt0.o that are linked with
1558# every program
1559crt0.o: s-crt0 ; @true
1560mcrt0.o: s-crt0; @true
1561
1562s-crt0:	$(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H)
1563	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
1564	  -o crt0.o -c $(CRT0_S)
1565	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
1566	  -o mcrt0.o -c $(MCRT0_S)
1567	$(STAMP) s-crt0
1568#
1569# Compiling object files from source files.
1570
1571# Note that dependencies on obstack.h are not written
1572# because that file is not part of GCC.
1573
1574# C language specific files.
1575
1576c-errors.o: c-errors.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1577    $(C_TREE_H) $(FLAGS_H) $(DIAGNOSTIC_H) $(TM_P_H)
1578c-parser.o : c-parser.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1579    $(GGC_H) $(TIMEVAR_H) $(C_TREE_H) input.h $(FLAGS_H) toplev.h output.h \
1580    $(CPPLIB_H) gt-c-parser.h langhooks.h $(C_COMMON_H) $(C_PRAGMA_H) \
1581    vec.h $(TARGET_H)
1582
1583srcextra: gcc.srcextra lang.srcextra
1584
1585gcc.srcextra: gengtype-lex.c gengtype-yacc.c gengtype-yacc.h
1586	-cp -p $^ $(srcdir)
1587
1588c-incpath.o: c-incpath.c c-incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
1589		intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
1590		$(MACHMODE_H)
1591
1592c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1593    $(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) output.h \
1594    $(EXPR_H) debug.h toplev.h intl.h $(TM_P_H) $(TREE_INLINE_H) $(TIMEVAR_H) \
1595    opts.h $(C_PRAGMA_H) gt-c-decl.h $(CGRAPH_H) $(HASHTAB_H) libfuncs.h \
1596    except.h $(LANGHOOKS_DEF_H) $(TREE_DUMP_H) $(C_COMMON_H) $(CPPLIB_H) \
1597    $(DIAGNOSTIC_H) input.h langhooks.h $(TREE_GIMPLE_H) tree-mudflap.h  \
1598    pointer-set.h
1599c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1600    $(TREE_H) $(C_TREE_H) $(TARGET_H) $(FLAGS_H) intl.h output.h $(EXPR_H) \
1601    $(RTL_H) toplev.h $(TM_P_H) langhooks.h $(GGC_H) $(TREE_FLOW_H) \
1602    $(TREE_GIMPLE_H) tree-iterator.h
1603c-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1604    $(C_TREE_H) $(DIAGNOSTIC_H) \
1605    $(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-c.h \
1606    c-objc-common.h $(C_PRAGMA_H) c-common.def $(TREE_INLINE_H)
1607stub-objc.o : stub-objc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
1608    $(C_COMMON_H)
1609c-lex.o : c-lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1610    $(RTL_H) debug.h $(C_TREE_H) $(C_COMMON_H) $(REAL_H) $(SPLAY_TREE_H) \
1611    $(C_PRAGMA_H) input.h intl.h $(FLAGS_H) toplev.h output.h \
1612    $(CPPLIB_H) $(TIMEVAR_H) $(TM_P_H)
1613c-ppoutput.o : c-ppoutput.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1614    $(C_COMMON_H) $(TREE_H) $(CPPLIB_H) $(srcdir)/../libcpp/internal.h \
1615    $(C_PRAGMA_H)
1616c-objc-common.o : c-objc-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1617    $(TM_H) $(TREE_H) $(C_TREE_H) $(RTL_H) insn-config.h $(INTEGRATE_H) \
1618    $(FUNCTION_H) $(FLAGS_H) toplev.h $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(VARRAY_H) \
1619    langhooks.h $(GGC_H) $(TARGET_H) $(C_PRETTY_PRINT_H) c-objc-common.h \
1620    tree-mudflap.h
1621c-aux-info.o : c-aux-info.c  $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1622    $(C_TREE_H) $(FLAGS_H) toplev.h
1623c-convert.o : c-convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1624    $(TREE_H) $(FLAGS_H) toplev.h $(C_COMMON_H) convert.h $(C_TREE_H) \
1625    langhooks.h $(TARGET_H)
1626c-pragma.o: c-pragma.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
1627    $(TREE_H) $(FUNCTION_H) $(C_PRAGMA_H) toplev.h output.h $(GGC_H) $(TM_P_H) \
1628    $(C_COMMON_H) $(TARGET_H) gt-c-pragma.h $(CPPLIB_H) $(FLAGS_H)
1629graph.o: graph.c $(SYSTEM_H) coretypes.h $(TM_H) toplev.h $(FLAGS_H) output.h \
1630    $(RTL_H) $(FUNCTION_H) hard-reg-set.h $(BASIC_BLOCK_H) graph.h $(OBSTACK_H)
1631sbitmap.o: sbitmap.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
1632    $(FLAGS_H) hard-reg-set.h $(BASIC_BLOCK_H) $(OBSTACK_H)
1633
1634COLLECT2_OBJS = collect2.o tlink.o intl.o version.o
1635COLLECT2_LIBS = @COLLECT2_LIBS@
1636collect2$(exeext): $(COLLECT2_OBJS) $(LIBDEPS)
1637# Don't try modifying collect2 (aka ld) in place--it might be linking this.
1638	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o T$@ \
1639		$(COLLECT2_OBJS) $(LIBS) $(COLLECT2_LIBS)
1640	mv -f T$@ $@
1641
1642collect2.o : collect2.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h \
1643	$(OBSTACK_H) $(DEMANGLE_H) collect2.h version.h
1644	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS)  \
1645	-DTARGET_MACHINE=\"$(target_noncanonical)\" \
1646	-c $(srcdir)/collect2.c $(OUTPUT_OPTION)
1647
1648tlink.o: tlink.c $(DEMANGLE_H) $(HASHTAB_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1649    $(OBSTACK_H) collect2.h intl.h
1650
1651# A file used by all variants of C.
1652
1653c-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1654	$(OBSTACK_H) $(C_COMMON_H) $(FLAGS_H) toplev.h output.h $(C_PRAGMA_H) \
1655	$(GGC_H) $(EXPR_H) $(TM_P_H) builtin-types.def builtin-attrs.def \
1656	$(DIAGNOSTIC_H) gt-c-common.h langhooks.h $(VARRAY_H) $(RTL_H) \
1657	$(TARGET_H) $(C_TREE_H) tree-iterator.h langhooks.h tree-mudflap.h \
1658	intl.h opts.h $(REAL_H) $(CPPLIB_H) $(TREE_INLINE_H) $(HASHTAB_H) \
1659	$(BUILTINS_DEF)
1660
1661c-pretty-print.o : c-pretty-print.c $(C_PRETTY_PRINT_H) \
1662	$(C_TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(REAL_H) \
1663	$(DIAGNOSTIC_H) tree-iterator.h
1664
1665c-opts.o : c-opts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)		\
1666        $(TREE_H) $(C_PRAGMA_H) $(FLAGS_H) toplev.h langhooks.h		\
1667        $(TREE_INLINE_H) $(DIAGNOSTIC_H) intl.h debug.h $(C_COMMON_H)	\
1668        opts.h options.h $(MKDEPS_H) c-incpath.h cppdefault.h
1669	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1670		$< $(OUTPUT_OPTION) @TARGET_SYSTEM_ROOT_DEFINE@
1671
1672c-cppbuiltin.o : c-cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1673	$(TREE_H) version.h $(C_COMMON_H) $(C_PRAGMA_H) $(FLAGS_H) toplev.h \
1674	output.h except.h $(REAL_H) $(TARGET_H) $(TM_P_H)
1675
1676# A file used by all variants of C and some other languages.
1677
1678attribs.o : attribs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1679	$(FLAGS_H) toplev.h output.h $(RTL_H) $(GGC_H) $(TM_P_H) \
1680	$(TARGET_H) langhooks.h $(CPPLIB_H)
1681
1682c-format.o : c-format.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) langhooks.h \
1683	$(C_COMMON_H) $(FLAGS_H) toplev.h intl.h $(DIAGNOSTIC_H) c-format.h
1684
1685c-semantics.o : c-semantics.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1686	$(TREE_H) $(FLAGS_H) toplev.h output.h $(RTL_H) $(GGC_H) \
1687	$(PREDICT_H) $(TREE_INLINE_H) $(C_COMMON_H) except.h $(FUNCTION_H) \
1688	langhooks.h $(SPLAY_TREE_H) $(TIMEVAR_H) $(TREE_GIMPLE_H) \
1689	$(VARRAY_H)
1690
1691c-dump.o : c-dump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1692	$(C_TREE_H) $(TREE_DUMP_H)
1693
1694c-pch.o : c-pch.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(CPPLIB_H) $(TREE_H) \
1695	$(C_COMMON_H) output.h toplev.h $(C_PRAGMA_H) $(GGC_H) debug.h \
1696	langhooks.h $(FLAGS_H) hosthooks.h version.h $(TARGET_H)
1697	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1698	  -DHOST_MACHINE=\"$(host)\" -DTARGET_MACHINE=\"$(target)\" \
1699	  $< $(OUTPUT_OPTION)
1700
1701c-omp.o : c-omp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1702	$(FUNCTION_H) $(C_COMMON_H) toplev.h $(TREE_GIMPLE_H)
1703
1704# Language-independent files.
1705
1706DRIVER_DEFINES = \
1707  -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \
1708  -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
1709  -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \
1710  -DDEFAULT_TARGET_VERSION=\"$(version)\" \
1711  -DDEFAULT_TARGET_MACHINE=\"$(target_noncanonical)\" \
1712  -DSTANDARD_BINDIR_PREFIX=\"$(bindir)/\" \
1713  -DTOOLDIR_BASE_PREFIX=\"$(unlibsubdir)/../\" \
1714  @TARGET_SYSTEM_ROOT_DEFINE@ \
1715  $(VALGRIND_DRIVER_DEFINES) \
1716  `test "X$${SHLIB_LINK}" = "X" || test "@enable_shared@" != "yes" || echo "-DENABLE_SHARED_LIBGCC"` \
1717  `test "X$${SHLIB_MULTILIB}" = "X" || echo "-DNO_SHARED_LIBGCC_MULTILIB"`
1718
1719gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \
1720    Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \
1721    configargs.h $(OBSTACK_H) opts.h
1722	(SHLIB_LINK='$(SHLIB_LINK)' \
1723	SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \
1724	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1725  $(DRIVER_DEFINES) \
1726  -c $(srcdir)/gcc.c $(OUTPUT_OPTION))
1727
1728gccspec.o: gccspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H)
1729	(SHLIB_LINK='$(SHLIB_LINK)' \
1730	SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \
1731	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1732  $(DRIVER_DEFINES) \
1733  -c $(srcdir)/gccspec.c $(OUTPUT_OPTION))
1734
1735cppspec.o: cppspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H)
1736
1737gencheck.h : s-gencheck ; @true
1738s-gencheck : Makefile
1739	ltf="$(lang_tree_files)"; for f in $$ltf; do \
1740	    echo "#include \"$$f\""; \
1741	done | sed 's|$(srcdir)/||' > tmp-gencheck.h
1742	$(SHELL) $(srcdir)/../move-if-change tmp-gencheck.h gencheck.h
1743	$(STAMP) s-gencheck
1744
1745specs.h : s-specs ; @true
1746s-specs : Makefile
1747	lsf="$(lang_specs_files)"; for f in $$lsf; do \
1748	    echo "#include \"$$f\""; \
1749	done | sed 's|$(srcdir)/||' > tmp-specs.h
1750	$(SHELL) $(srcdir)/../move-if-change tmp-specs.h specs.h
1751	$(STAMP) s-specs
1752
1753optionlist: s-options ; @true
1754s-options: $(ALL_OPT_FILES) Makefile $(srcdir)/opt-gather.awk
1755	$(AWK) -f $(srcdir)/opt-gather.awk $(ALL_OPT_FILES) > tmp-optionlist
1756	$(SHELL) $(srcdir)/../move-if-change tmp-optionlist optionlist
1757	$(STAMP) s-options
1758
1759options.c: optionlist $(srcdir)/opt-functions.awk $(srcdir)/optc-gen.awk
1760	$(AWK) -f $(srcdir)/opt-functions.awk -f $(srcdir)/optc-gen.awk \
1761	       -v header_name="config.h system.h coretypes.h tm.h" < $< > $@ 
1762
1763options.h: s-options-h ; @true
1764s-options-h: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opth-gen.awk
1765	$(AWK) -f $(srcdir)/opt-functions.awk -f $(srcdir)/opth-gen.awk \
1766	       < $< > tmp-options.h
1767	$(SHELL) $(srcdir)/../move-if-change tmp-options.h options.h
1768	$(STAMP) $@
1769
1770options.o: options.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) opts.h intl.h
1771
1772gcc-options.o: options.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) opts.h intl.h
1773	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(OUTPUT_OPTION) -DGCC_DRIVER options.c
1774
1775dumpvers: dumpvers.c
1776
1777version.o: version.c version.h $(DATESTAMP) $(BASEVER) $(DEVPHASE)
1778	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1779	-DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
1780	-DDEVPHASE=$(DEVPHASE_s) -c $(srcdir)/version.c $(OUTPUT_OPTION)
1781
1782gtype-desc.o: gtype-desc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1783	$(VARRAY_H) $(HASHTAB_H) $(SPLAY_TREE_H) bitmap.h $(TREE_H) $(RTL_H) \
1784	$(FUNCTION_H) insn-config.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \
1785	cselib.h insn-addr.h $(OPTABS_H) libfuncs.h debug.h $(GGC_H) \
1786	$(CGRAPH_H) $(TREE_FLOW_H) reload.h $(CPP_ID_DATA_H)
1787
1788ggc-common.o: ggc-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(GGC_H) \
1789	$(HASHTAB_H) toplev.h $(PARAMS_H) hosthooks.h $(HOSTHOOKS_DEF_H)
1790
1791ggc-page.o: ggc-page.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
1792	$(FLAGS_H) toplev.h $(GGC_H) $(TIMEVAR_H) $(TM_P_H) $(PARAMS_H) $(TREE_FLOW_H)
1793
1794ggc-zone.o: ggc-zone.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
1795	$(TREE_H) $(FLAGS_H) toplev.h $(GGC_H) $(TIMEVAR_H) $(TM_P_H) \
1796	$(PARAMS_H) bitmap.h $(VARRAY_H)
1797
1798ggc-none.o: ggc-none.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(GGC_H) \
1799	$(BCONFIG_H)
1800
1801stringpool.o: stringpool.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1802	$(TREE_H) $(GGC_H) gt-stringpool.h $(CPPLIB_H) $(SYMTAB_H)
1803
1804prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) prefix.h \
1805	Makefile $(BASEVER)
1806	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1807	-DPREFIX=\"$(prefix)\" -DBASEVER=$(BASEVER_s) \
1808	  -c $(srcdir)/prefix.c $(OUTPUT_OPTION)
1809
1810convert.o: convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1811   $(FLAGS_H) convert.h toplev.h langhooks.h $(REAL_H)
1812
1813double-int.o: double-int.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H)
1814
1815langhooks.o : langhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1816   $(TREE_H) toplev.h $(TREE_INLINE_H) $(RTL_H) insn-config.h $(INTEGRATE_H) \
1817   langhooks.h $(LANGHOOKS_DEF_H) $(FLAGS_H) $(GGC_H) $(DIAGNOSTIC_H) intl.h \
1818   $(TREE_GIMPLE_H)
1819tree.o : tree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1820   $(FLAGS_H) $(FUNCTION_H) $(PARAMS_H) \
1821   toplev.h $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) langhooks.h \
1822   $(REAL_H) gt-tree.h tree-iterator.h $(BASIC_BLOCK_H) $(TREE_FLOW_H) \
1823   $(OBSTACK_H) pointer-set.h
1824tree-dump.o: tree-dump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1825   $(TREE_H) langhooks.h toplev.h $(SPLAY_TREE_H) $(TREE_DUMP_H) \
1826   tree-iterator.h tree-pass.h $(DIAGNOSTIC_H) $(REAL_H)
1827tree-inline.o : tree-inline.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1828   $(TREE_H) $(RTL_H) $(EXPR_H) $(FLAGS_H) $(PARAMS_H) input.h insn-config.h \
1829   $(VARRAY_H) $(HASHTAB_H) $(SPLAY_TREE_H) toplev.h \
1830   langhooks.h $(TREE_INLINE_H) $(CGRAPH_H) intl.h $(FUNCTION_H) $(TREE_GIMPLE_H) \
1831   debug.h $(DIAGNOSTIC_H) $(TREE_FLOW_H) tree-iterator.h tree-mudflap.h \
1832   ipa-prop.h
1833print-tree.o : print-tree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1834   $(GGC_H) langhooks.h $(REAL_H) tree-iterator.h
1835stor-layout.o : stor-layout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1836   $(TREE_H) $(PARAMS_H) $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) $(RTL_H) \
1837   $(GGC_H) $(TM_P_H) $(TARGET_H) langhooks.h $(REGS_H) gt-stor-layout.h \
1838   toplev.h
1839tree-ssa-structalias.o: tree-ssa-structalias.c tree-ssa-structalias.h \
1840   $(SYSTEM_H) $(CONFIG_H) $(GGC_H) $(TREE_H) $(TREE_FLOW_H) \
1841   $(TM_H) coretypes.h $(CGRAPH_H) tree-pass.h $(TIMEVAR_H) \
1842   gt-tree-ssa-structalias.h $(PARAMS_H) pointer-set.h
1843tree-ssa.o : tree-ssa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1844   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) output.h $(DIAGNOSTIC_H) \
1845   toplev.h $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1846   $(TREE_DUMP_H) langhooks.h tree-pass.h $(BASIC_BLOCK_H) bitmap.h \
1847   $(FLAGS_H) $(GGC_H) hard-reg-set.h $(HASHTAB_H) pointer-set.h \
1848   $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H)
1849tree-into-ssa.o : tree-into-ssa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1850   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) output.h $(DIAGNOSTIC_H) \
1851   $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1852   langhooks.h domwalk.h tree-pass.h $(GGC_H) $(PARAMS_H) $(BASIC_BLOCK_H) \
1853   bitmap.h $(CFGLOOP_H) $(FLAGS_H) hard-reg-set.h $(HASHTAB_H) \
1854   $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) vecprim.h
1855tree-outof-ssa.o : tree-outof-ssa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1856   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) output.h $(DIAGNOSTIC_H) \
1857   $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1858   langhooks.h tree-pass.h $(TREE_SSA_LIVE_H) $(BASIC_BLOCK_H) bitmap.h \
1859   $(FLAGS_H) $(GGC_H) hard-reg-set.h $(HASHTAB_H) $(TREE_GIMPLE_H) \
1860   $(TREE_INLINE_H) $(VARRAY_H) toplev.h vecprim.h
1861tree-ssa-dse.o : tree-ssa-dse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1862   $(TM_H) $(GGC_H) $(TREE_H) $(RTL_H) $(TM_P_H) $(BASIC_BLOCK_H) \
1863   $(TREE_FLOW_H) tree-pass.h $(TREE_DUMP_H) domwalk.h $(FLAGS_H) \
1864   $(DIAGNOSTIC_H) $(TIMEVAR_H)
1865tree-ssa-forwprop.o : tree-ssa-forwprop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1866   $(TM_H) $(GGC_H) $(TREE_H) $(RTL_H) $(TM_P_H) $(BASIC_BLOCK_H) \
1867   $(TREE_FLOW_H) tree-pass.h $(TREE_DUMP_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) \
1868   langhooks.h
1869tree-ssa-phiopt.o : tree-ssa-phiopt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1870   $(TM_H) $(GGC_H) $(TREE_H) $(RTL_H) $(TM_P_H) $(BASIC_BLOCK_H) \
1871   $(TREE_FLOW_H) tree-pass.h $(TREE_DUMP_H) langhooks.h $(FLAGS_H) \
1872   $(DIAGNOSTIC_H) $(TIMEVAR_H)
1873tree-nrv.o : tree-nrv.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1874   $(TM_H) $(TREE_H) $(RTL_H) $(FUNCTION_H) $(BASIC_BLOCK_H) $(EXPR_H) \
1875   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TIMEVAR_H) $(TREE_DUMP_H) tree-pass.h \
1876   langhooks.h
1877tree-ssa-copy.o : tree-ssa-copy.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1878   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h $(DIAGNOSTIC_H) \
1879   $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1880   $(BASIC_BLOCK_H) tree-pass.h langhooks.h tree-ssa-propagate.h $(FLAGS_H)
1881tree-ssa-propagate.o : tree-ssa-propagate.c $(TREE_FLOW_H) $(CONFIG_H) \
1882   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
1883   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1884   $(TREE_DUMP_H) $(BASIC_BLOCK_H) tree-pass.h langhooks.h \
1885   tree-ssa-propagate.h vec.h gt-tree-ssa-propagate.h $(FLAGS_H) $(VARRAY_H)
1886tree-ssa-dom.o : tree-ssa-dom.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1887   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h $(DIAGNOSTIC_H) \
1888   $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1889   $(BASIC_BLOCK_H) domwalk.h tree-pass.h $(FLAGS_H) langhooks.h \
1890   tree-ssa-propagate.h $(CFGLOOP_H) $(PARAMS_H) $(REAL_H)
1891tree-ssa-uncprop.o : tree-ssa-uncprop.c $(TREE_FLOW_H) $(CONFIG_H) \
1892   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
1893   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1894   $(TREE_DUMP_H) $(BASIC_BLOCK_H) domwalk.h tree-pass.h $(FLAGS_H) \
1895   langhooks.h tree-ssa-propagate.h $(REAL_H)
1896tree-ssa-threadedge.o : tree-ssa-threadedge.c $(TREE_FLOW_H) $(CONFIG_H) \
1897   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
1898   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1899   $(BASIC_BLOCK_H) $(FLAGS_H) tree-pass.h $(CFGLOOP_H)
1900tree-ssa-threadupdate.o : tree-ssa-threadupdate.c $(TREE_FLOW_H) $(CONFIG_H) \
1901   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
1902   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1903   $(BASIC_BLOCK_H) $(FLAGS_H) tree-pass.h $(CFGLOOP_H)
1904tree-ssanames.o : tree-ssanames.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1905   $(TM_H) $(TREE_H) $(VARRAY_H) $(GGC_H) gt-tree-ssanames.h  $(TREE_FLOW_H)
1906tree-phinodes.o : tree-phinodes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1907   $(TM_H) $(TREE_H) $(VARRAY_H) $(GGC_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) \
1908   gt-tree-phinodes.h $(RTL_H) toplev.h
1909domwalk.o : domwalk.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1910   $(TREE_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) domwalk.h $(GGC_H)
1911tree-ssa-live.o : tree-ssa-live.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1912   $(TREE_H) $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) \
1913   $(TM_H) coretypes.h $(TREE_DUMP_H) $(TREE_SSA_LIVE_H) $(BASIC_BLOCK_H) \
1914   bitmap.h $(FLAGS_H) $(HASHTAB_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) \
1915   $(VARRAY_H) toplev.h vecprim.h
1916tree-ssa-copyrename.o : tree-ssa-copyrename.c $(TREE_FLOW_H) $(CONFIG_H) \
1917   $(SYSTEM_H) $(TREE_H) $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) tree-pass.h \
1918   $(TM_H) coretypes.h $(TREE_DUMP_H) $(TREE_SSA_LIVE_H) $(BASIC_BLOCK_H) \
1919   bitmap.h $(FLAGS_H) $(HASHTAB_H) langhooks.h $(TREE_GIMPLE_H) \
1920   $(TREE_INLINE_H)
1921tree-ssa-pre.o : tree-ssa-pre.c $(TREE_FLOW_H) $(CONFIG_H) \
1922   $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) \
1923   $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) $(CFGLOOP_H) \
1924   alloc-pool.h $(BASIC_BLOCK_H) bitmap.h $(HASHTAB_H) $(TREE_GIMPLE_H) \
1925   $(TREE_INLINE_H) tree-iterator.h
1926tree-vn.o : tree-vn.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) \
1927   $(TREE_H) $(TREE_FLOW_H) $(HASHTAB_H) langhooks.h tree-pass.h \
1928   $(TREE_DUMP_H) $(DIAGNOSTIC_H)
1929tree-vrp.o : tree-vrp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1930   $(TREE_FLOW_H) tree-pass.h $(TREE_DUMP_H) $(DIAGNOSTIC_H) $(GGC_H) \
1931   $(BASIC_BLOCK_H) tree-ssa-propagate.h $(FLAGS_H) $(TREE_DUMP_H) \
1932   $(CFGLOOP_H) $(SCEV_H) tree-chrec.h $(TIMEVAR_H) toplev.h intl.h
1933tree-cfg.o : tree-cfg.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1934   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(FLAGS_H) output.h \
1935   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1936   $(TREE_DUMP_H) except.h langhooks.h $(CFGLOOP_H) tree-pass.h \
1937   $(CFGLAYOUT_H) $(BASIC_BLOCK_H) hard-reg-set.h $(HASHTAB_H) toplev.h \
1938   tree-ssa-propagate.h
1939tree-cfgcleanup.o : tree-cfgcleanup.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1940   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(FLAGS_H) output.h \
1941   $(DIAGNOSTIC_H) toplev.h $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1942   $(TREE_DUMP_H) except.h langhooks.h $(CFGLOOP_H) tree-pass.h \
1943   $(CFGLAYOUT_H) $(BASIC_BLOCK_H) hard-reg-set.h $(HASHTAB_H) toplev.h \
1944   tree-ssa-propagate.h
1945rtl-factoring.o : rtl-factoring.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
1946   coretypes.h $(TM_H) $(BASIC_BLOCK_H) $(GGC_H) $(REGS_H) $(PARAMS_H) $(EXPR_H) \
1947   addresses.h $(TM_P_H) tree-pass.h $(TREE_FLOW_H) $(TIMEVAR_H) output.h
1948tree-tailcall.o : tree-tailcall.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1949   $(RTL_H) $(TREE_H) $(TM_P_H) $(FUNCTION_H) $(TM_H) coretypes.h \
1950   $(TREE_DUMP_H) $(DIAGNOSTIC_H) except.h tree-pass.h $(FLAGS_H) langhooks.h \
1951   $(BASIC_BLOCK_H) hard-reg-set.h
1952tree-ssa-sink.o : tree-ssa-sink.c $(TREE_FLOW_H) $(CONFIG_H) \
1953   $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) \
1954   $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) alloc-pool.h \
1955   $(BASIC_BLOCK_H) bitmap.h $(CFGLOOP_H) $(FIBHEAP_H) $(HASHTAB_H) \
1956   langhooks.h $(REAL_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) tree-iterator.h
1957tree-nested.o: tree-nested.c $(CONFIG_H) $(SYSTEM_H) $(TM_H) $(TREE_H) \
1958   $(RTL_H) $(TM_P_H) $(FUNCTION_H) $(TREE_DUMP_H) $(TREE_INLINE_H) \
1959   tree-iterator.h $(TREE_GIMPLE_H) $(CGRAPH_H) $(EXPR_H) langhooks.h \
1960   $(GGC_H) gt-tree-nested.h coretypes.h $(TREE_FLOW_H)
1961tree-if-conv.o: tree-if-conv.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1962   $(TREE_H) $(FLAGS_H) $(TIMEVAR_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) \
1963   $(CFGLOOP_H) $(RTL_H) $(C_COMMON_H) tree-chrec.h $(TREE_DATA_REF_H) \
1964   $(SCEV_H) tree-pass.h $(DIAGNOSTIC_H) $(TARGET_H) $(TREE_DUMP_H) \
1965   $(VARRAY_H)
1966tree-iterator.o : tree-iterator.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
1967   coretypes.h $(GGC_H) tree-iterator.h $(TREE_GIMPLE_H) gt-tree-iterator.h
1968tree-dfa.o : tree-dfa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1969   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h $(DIAGNOSTIC_H) \
1970   $(TREE_INLINE_H) $(HASHTAB_H) pointer-set.h $(FLAGS_H) $(FUNCTION_H) \
1971   $(TIMEVAR_H) convert.h $(TM_H) coretypes.h langhooks.h $(TREE_DUMP_H) \
1972   tree-pass.h $(PARAMS_H) $(CGRAPH_H) $(BASIC_BLOCK_H) hard-reg-set.h \
1973   $(TREE_GIMPLE_H) 
1974tree-ssa-operands.o : tree-ssa-operands.c $(TREE_FLOW_H) $(CONFIG_H) \
1975   $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) errors.h $(TREE_INLINE_H) \
1976   $(FLAGS_H) $(FUNCTION_H) $(TM_H) $(TIMEVAR_H) tree-pass.h toplev.h \
1977   gt-tree-ssa-operands.h coretypes.h langhooks.h $(IPA_REFERENCE_H)
1978tree-eh.o : tree-eh.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1979   $(RTL_H) $(TREE_H) $(TM_H) $(FLAGS_H) $(FUNCTION_H) except.h langhooks.h \
1980   $(GGC_H) tree-pass.h coretypes.h $(TIMEVAR_H) $(TM_P_H) \
1981   $(TREE_DUMP_H) $(TREE_INLINE_H) tree-iterator.h toplev.h
1982tree-ssa-loop.o : tree-ssa-loop.c $(TREE_FLOW_H) $(CONFIG_H) \
1983   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) \
1984   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1985   tree-pass.h $(FLAGS_H) $(TREE_INLINE_H) $(SCEV_H) $(BASIC_BLOCK_H) \
1986   hard-reg-set.h
1987tree-ssa-loop-unswitch.o : tree-ssa-loop-unswitch.c $(TREE_FLOW_H) \
1988   $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) \
1989   domwalk.h $(PARAMS_H) output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) \
1990   coretypes.h $(TREE_DUMP_H) tree-pass.h $(BASIC_BLOCK_H) hard-reg-set.h
1991tree-ssa-address.o : tree-ssa-address.c $(TREE_FLOW_H) $(CONFIG_H) \
1992   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) \
1993   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1994   tree-pass.h $(FLAGS_H) $(TREE_INLINE_H) $(RECOG_H) insn-config.h $(EXPR_H) \
1995   gt-tree-ssa-address.h $(GGC_H)
1996tree-ssa-loop-niter.o : tree-ssa-loop-niter.c $(TREE_FLOW_H) $(CONFIG_H) \
1997   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(PARAMS_H) \
1998   $(TREE_INLINE_H) output.h $(DIAGNOSTIC_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1999   $(FLAGS_H) tree-pass.h $(SCEV_H) $(TREE_DATA_REF_H) $(BASIC_BLOCK_H) \
2000   $(GGC_H) hard-reg-set.h tree-chrec.h intl.h
2001tree-ssa-loop-ivcanon.o : tree-ssa-loop-ivcanon.c $(TREE_FLOW_H) $(CONFIG_H) \
2002   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(PARAMS_H) \
2003   $(TREE_INLINE_H) output.h $(DIAGNOSTIC_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2004   $(FLAGS_H) tree-pass.h $(SCEV_H) $(BASIC_BLOCK_H) $(GGC_H) hard-reg-set.h \
2005   tree-chrec.h
2006tree-ssa-loop-ch.o : tree-ssa-loop-ch.c $(TREE_FLOW_H) $(CONFIG_H) \
2007   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(TREE_INLINE_H) \
2008   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2009   tree-pass.h $(FLAGS_H) $(BASIC_BLOCK_H) hard-reg-set.h
2010tree-ssa-loop-prefetch.o: tree-ssa-loop-prefetch.c $(TREE_FLOW_H) $(CONFIG_H) \
2011   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(EXPR_H) \
2012   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2013   tree-pass.h $(GGC_H) $(RECOG_H) insn-config.h $(HASHTAB_H) $(SCEV_H) \
2014   $(CFGLOOP_H) $(PARAMS_H) langhooks.h $(BASIC_BLOCK_H) hard-reg-set.h \
2015   tree-chrec.h toplev.h langhooks.h
2016tree-ssa-loop-ivopts.o : tree-ssa-loop-ivopts.c $(TREE_FLOW_H) $(CONFIG_H) \
2017   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(EXPR_H) \
2018   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2019   tree-pass.h $(GGC_H) $(RECOG_H) insn-config.h $(HASHTAB_H) $(SCEV_H) \
2020   $(CFGLOOP_H) $(PARAMS_H) langhooks.h $(BASIC_BLOCK_H) hard-reg-set.h \
2021   tree-chrec.h $(VARRAY_H)
2022tree-ssa-loop-manip.o : tree-ssa-loop-manip.c $(TREE_FLOW_H) $(CONFIG_H) \
2023   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) \
2024   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2025   tree-pass.h $(CFGLAYOUT_H) $(SCEV_H) $(BASIC_BLOCK_H) hard-reg-set.h \
2026   $(PARAMS_H)
2027tree-ssa-loop-im.o : tree-ssa-loop-im.c $(TREE_FLOW_H) $(CONFIG_H) \
2028   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) domwalk.h \
2029   $(PARAMS_H) output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
2030   $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) $(REAL_H) $(BASIC_BLOCK_H) \
2031   hard-reg-set.h
2032tree-ssa-math-opts.o : tree-ssa-math-opts.c $(TREE_FLOW_H) $(CONFIG_H) \
2033   $(SYSTEM_H) $(TREE_H) $(TIMEVAR_H) tree-pass.h $(TM_H) $(FLAGS_H) \
2034   alloc-pool.h $(BASIC_BLOCK_H) $(TARGET_H)
2035tree-ssa-alias.o : tree-ssa-alias.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
2036   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(TREE_INLINE_H) $(FLAGS_H) \
2037   $(FUNCTION_H) $(TIMEVAR_H) convert.h $(TM_H) coretypes.h langhooks.h \
2038   $(TREE_DUMP_H) tree-pass.h $(PARAMS_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) \
2039   hard-reg-set.h $(TREE_GIMPLE_H) vec.h tree-ssa-structalias.h \
2040   $(IPA_TYPE_ESCAPE_H) vecprim.h pointer-set.h
2041tree-ssa-reassoc.o : tree-ssa-reassoc.c $(TREE_FLOW_H) $(CONFIG_H) \
2042   $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) errors.h $(TIMEVAR_H) \
2043   $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) tree-iterator.h\
2044   $(BASIC_BLOCK_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) vec.h \
2045   alloc-pool.h
2046tree-optimize.o : tree-optimize.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
2047   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h $(DIAGNOSTIC_H) \
2048   $(FLAGS_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) toplev.h \
2049   $(FUNCTION_H) langhooks.h $(FLAGS_H) $(CGRAPH_H) $(TREE_INLINE_H) \
2050   tree-mudflap.h $(GGC_H) $(CGRAPH_H) tree-pass.h $(CFGLOOP_H) \
2051   $(BASIC_BLOCK_H) graph.h hard-reg-set.h
2052c-gimplify.o : c-gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2053   $(C_TREE_H) $(C_COMMON_H) $(DIAGNOSTIC_H) $(TREE_GIMPLE_H) $(VARRAY_H) \
2054   $(FLAGS_H) langhooks.h toplev.h $(RTL_H) $(TREE_FLOW_H) $(LANGHOOKS_DEF_H) \
2055   $(TM_H) coretypes.h $(C_PRETTY_PRINT_H) $(CGRAPH_H) $(BASIC_BLOCK_H) \
2056   hard-reg-set.h $(TREE_DUMP_H) $(TREE_INLINE_H)
2057gimplify.o : gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2058   $(DIAGNOSTIC_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) langhooks.h \
2059   $(LANGHOOKS_DEF_H) $(TREE_FLOW_H) $(CGRAPH_H) $(TIMEVAR_H) $(TM_H) \
2060   coretypes.h except.h $(FLAGS_H) $(RTL_H) $(FUNCTION_H) $(EXPR_H) output.h \
2061   $(GGC_H) gt-gimplify.h $(HASHTAB_H) $(TARGET_H) toplev.h $(OPTABS_H) \
2062   $(REAL_H)
2063gimple-low.o : gimple-low.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2064   $(DIAGNOSTIC_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) langhooks.h \
2065   $(LANGHOOKS_DEF_H) $(TREE_FLOW_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
2066   except.h $(FLAGS_H) $(RTL_H) $(FUNCTION_H) $(EXPR_H) tree-pass.h \
2067   $(HASHTAB_H) toplev.h
2068omp-low.o : omp-low.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2069   $(RTL_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) langhooks.h $(DIAGNOSTIC_H) \
2070   $(TREE_FLOW_H) $(TIMEVAR_H) $(FLAGS_H) $(EXPR_H) toplev.h tree-pass.h \
2071   $(GGC_H)
2072tree-browser.o : tree-browser.c tree-browser.def $(CONFIG_H) $(SYSTEM_H) \
2073   $(TREE_H) $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) \
2074   $(TM_H) coretypes.h
2075tree-chrec.o: tree-chrec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2076   $(GGC_H) $(TREE_H) $(REAL_H) $(SCEV_H) tree-pass.h $(PARAMS_H) \
2077   $(DIAGNOSTIC_H) $(CFGLOOP_H) $(TREE_FLOW_H)
2078tree-scalar-evolution.o: tree-scalar-evolution.c $(CONFIG_H) $(SYSTEM_H) \
2079   coretypes.h $(TM_H) $(GGC_H) $(TREE_H) $(REAL_H) $(RTL_H) \
2080   $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) \
2081   $(TIMEVAR_H) $(CFGLOOP_H) $(SCEV_H) tree-pass.h $(FLAGS_H) tree-chrec.h
2082tree-data-ref.o: tree-data-ref.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2083   $(GGC_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) \
2084   $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2085   $(TREE_DATA_REF_H) $(SCEV_H) tree-pass.h tree-chrec.h
2086tree-vect-analyze.o: tree-vect-analyze.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2087   $(TM_H) $(GGC_H) $(OPTABS_H) $(TREE_H) $(BASIC_BLOCK_H) \
2088   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2089   tree-vectorizer.h $(TREE_DATA_REF_H) $(SCEV_H) $(EXPR_H) tree-chrec.h
2090tree-vect-patterns.o: tree-vect-patterns.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2091   $(TM_H) errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) \
2092   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2093   tree-vectorizer.h $(TREE_DATA_REF_H) $(EXPR_H) $(TARGET_H)
2094tree-vect-transform.o: tree-vect-transform.c $(CONFIG_H) $(SYSTEM_H) \
2095   coretypes.h $(TM_H) $(GGC_H) $(OPTABS_H) $(RECOG_H) $(TREE_H) $(RTL_H) \
2096   $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) \
2097   $(TIMEVAR_H) $(CFGLOOP_H) $(TARGET_H) tree-pass.h $(EXPR_H) \
2098   tree-vectorizer.h $(TREE_DATA_REF_H) $(SCEV_H) langhooks.h toplev.h \
2099   tree-chrec.h
2100tree-vectorizer.o: tree-vectorizer.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2101   $(TM_H) $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) \
2102   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2103   tree-pass.h $(EXPR_H) tree-vectorizer.h $(TREE_DATA_REF_H) $(SCEV_H) \
2104   input.h $(TARGET_H) $(CFGLAYOUT_H) toplev.h tree-chrec.h
2105tree-loop-linear.o: tree-loop-linear.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2106   $(TM_H) $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) \
2107   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2108   tree-pass.h $(TREE_DATA_REF_H) $(SCEV_H) $(EXPR_H) $(LAMBDA_H) \
2109   $(TARGET_H) tree-chrec.h
2110tree-stdarg.o: tree-stdarg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2111   $(TREE_H) $(FUNCTION_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) tree-pass.h \
2112   tree-stdarg.h $(TARGET_H) langhooks.h
2113tree-object-size.o: tree-object-size.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2114   $(TM_H) $(TREE_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) tree-pass.h \
2115   tree-ssa-propagate.h
2116tree-gimple.o : tree-gimple.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(EXPR_H) \
2117   $(RTL_H) $(TREE_GIMPLE_H) $(TM_H) coretypes.h bitmap.h $(GGC_H) \
2118   output.h $(TREE_FLOW_H)
2119tree-mudflap.o : $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TREE_INLINE_H) \
2120   $(TREE_GIMPLE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) langhooks.h tree-mudflap.h \
2121   $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(CGRAPH_H) $(GGC_H) \
2122   gt-tree-mudflap.h $(BASIC_BLOCK_H) $(FLAGS_H) $(FUNCTION_H) hard-reg-set.h \
2123   $(RTL_H) $(TM_P_H) $(TREE_FLOW_H) toplev.h
2124tree-nomudflap.o : $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TREE_INLINE_H) \
2125   $(C_TREE_H) $(C_COMMON_H) $(TREE_GIMPLE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) \
2126   output.h $(VARRAY_H) langhooks.h tree-mudflap.h $(TM_H) coretypes.h \
2127   $(GGC_H) gt-tree-mudflap.h tree-pass.h toplev.h
2128tree-pretty-print.o : tree-pretty-print.c $(CONFIG_H) $(SYSTEM_H) \
2129   $(TREE_H) $(DIAGNOSTIC_H) $(REAL_H) $(HASHTAB_H) $(TREE_FLOW_H) \
2130   $(TM_H) coretypes.h tree-iterator.h tree-chrec.h langhooks.h tree-pass.h
2131fold-const.o : fold-const.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2132   $(TREE_H) $(FLAGS_H) $(REAL_H) toplev.h $(HASHTAB_H) $(EXPR_H) $(RTL_H) \
2133   $(GGC_H) $(TM_P_H) langhooks.h $(MD5_H) intl.h
2134diagnostic.o : diagnostic.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2135   $(TREE_H) version.h $(TM_P_H) $(FLAGS_H) input.h toplev.h intl.h \
2136   $(DIAGNOSTIC_H) langhooks.h $(LANGHOOKS_DEF_H) diagnostic.def opts.h
2137opts.o : opts.c opts.h options.h toplev.h $(CONFIG_H) $(SYSTEM_H) \
2138   coretypes.h $(TREE_H) $(TM_H) langhooks.h $(GGC_H) $(RTL_H) \
2139   output.h $(DIAGNOSTIC_H) $(TM_P_H) $(INSN_ATTR_H) intl.h $(TARGET_H) \
2140   $(FLAGS_H) $(PARAMS_H) tree-pass.h
2141opts-common.o : opts-common.c opts.h $(CONFIG_H) $(SYSTEM_H) \
2142   coretypes.h intl.h
2143targhooks.o : targhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
2144   $(EXPR_H) $(TM_H) $(RTL_H) $(TM_P_H) $(FUNCTION_H) output.h toplev.h \
2145   $(MACHMODE_H) $(TARGET_DEF_H) $(TARGET_H) $(GGC_H) gt-targhooks.h
2146
2147toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2148   version.h $(RTL_H) $(FUNCTION_H) $(FLAGS_H) xcoffout.h input.h \
2149   $(INSN_ATTR_H) output.h $(DIAGNOSTIC_H) debug.h insn-config.h intl.h \
2150   $(RECOG_H) Makefile toplev.h dwarf2out.h sdbout.h dbxout.h $(EXPR_H) \
2151   hard-reg-set.h $(BASIC_BLOCK_H) graph.h except.h $(REGS_H) $(TIMEVAR_H) \
2152   value-prof.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) \
2153   langhooks.h insn-flags.h $(CFGLAYOUT_H) $(CFGLOOP_H) hosthooks.h \
2154   $(CGRAPH_H) $(COVERAGE_H) alloc-pool.h $(GGC_H) $(INTEGRATE_H) \
2155   $(CPPLIB_H) opts.h params.def tree-mudflap.h $(REAL_H)
2156	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
2157	  -DTARGET_NAME=\"$(target_noncanonical)\" \
2158	  -c $(srcdir)/toplev.c $(OUTPUT_OPTION)
2159
2160passes.o : passes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2161   $(RTL_H) $(FUNCTION_H) $(FLAGS_H) xcoffout.h input.h $(INSN_ATTR_H) output.h \
2162   $(DIAGNOSTIC_H) debug.h insn-config.h intl.h $(RECOG_H) toplev.h \
2163   dwarf2out.h sdbout.h dbxout.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \
2164   graph.h except.h $(REGS_H) $(TIMEVAR_H) value-prof.h \
2165   $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) \
2166   langhooks.h insn-flags.h $(CFGLAYOUT_H) $(REAL_H) $(CFGLOOP_H) \
2167   hosthooks.h $(CGRAPH_H) $(COVERAGE_H) tree-pass.h $(TREE_DUMP_H) \
2168   $(GGC_H) $(INTEGRATE_H) $(CPPLIB_H) opts.h $(TREE_FLOW_H) $(TREE_INLINE_H)
2169
2170main.o : main.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h
2171
2172host-default.o : host-default.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2173   hosthooks.h $(HOSTHOOKS_DEF_H)
2174
2175rtl-error.o: rtl-error.c $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2176   $(INSN_ATTR_H) insn-config.h input.h toplev.h intl.h $(DIAGNOSTIC_H) \
2177   $(CONFIG_H)
2178
2179rtl.o : rtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2180  $(GGC_H) $(BCONFIG_H) insn-notes.def reg-notes.def toplev.h $(REAL_H)
2181
2182print-rtl.o : print-rtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2183    $(RTL_H) $(TREE_H) hard-reg-set.h $(BASIC_BLOCK_H) $(FLAGS_H) \
2184    $(BCONFIG_H) $(REAL_H)
2185rtlanal.o : rtlanal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \
2186   $(RTL_H) hard-reg-set.h $(TM_P_H) insn-config.h $(RECOG_H) $(REAL_H) \
2187   $(FLAGS_H) $(REGS_H) output.h $(TARGET_H) $(FUNCTION_H)
2188
2189varasm.o : varasm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2190   $(RTL_H) $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) hard-reg-set.h $(REGS_H) \
2191   output.h $(C_PRAGMA_H) toplev.h xcoffout.h debug.h $(GGC_H) $(TM_P_H) \
2192   $(HASHTAB_H) $(TARGET_H) langhooks.h gt-varasm.h $(BASIC_BLOCK_H) \
2193   $(CFGLAYOUT_H) $(CGRAPH_H) tree-mudflap.h $(REAL_H)
2194function.o : function.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2195   $(TREE_H) $(CFGLAYOUT_H) $(TREE_GIMPLE_H) $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) \
2196   $(OPTABS_H) libfuncs.h $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
2197   output.h toplev.h except.h $(HASHTAB_H) $(GGC_H) $(TM_P_H) langhooks.h \
2198   gt-function.h $(TARGET_H) $(BASIC_BLOCK_H) $(INTEGRATE_H) $(PREDICT_H) \
2199   tree-pass.h vecprim.h
2200stmt.o : stmt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2201   $(TREE_H) $(FLAGS_H) $(FUNCTION_H) insn-config.h hard-reg-set.h $(EXPR_H) \
2202   libfuncs.h except.h $(RECOG_H) toplev.h output.h $(GGC_H) $(TM_P_H) \
2203   langhooks.h $(PREDICT_H) $(OPTABS_H) $(TARGET_H) $(MACHMODE_H) \
2204   $(REGS_H)
2205except.o : except.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2206   $(TREE_H) $(FLAGS_H) except.h $(FUNCTION_H) $(EXPR_H) libfuncs.h \
2207   langhooks.h insn-config.h hard-reg-set.h $(BASIC_BLOCK_H) output.h \
2208   dwarf2asm.h dwarf2out.h toplev.h $(HASHTAB_H) intl.h $(GGC_H) \
2209   gt-except.h $(CGRAPH_H) $(INTEGRATE_H) $(DIAGNOSTIC_H) dwarf2.h \
2210   $(TARGET_H) $(TM_P_H) tree-pass.h $(TIMEVAR_H)
2211expr.o : expr.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2212   $(TREE_H) $(FLAGS_H) $(FUNCTION_H) $(REGS_H) $(EXPR_H) $(OPTABS_H) \
2213   libfuncs.h $(INSN_ATTR_H) insn-config.h $(RECOG_H) output.h \
2214   typeclass.h hard-reg-set.h toplev.h hard-reg-set.h except.h reload.h \
2215   $(GGC_H) langhooks.h intl.h $(TM_P_H) $(REAL_H) $(TARGET_H) \
2216   tree-iterator.h gt-expr.h $(MACHMODE_H) $(TIMEVAR_H) $(TREE_FLOW_H) \
2217   tree-pass.h
2218dojump.o : dojump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
2219   $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) $(OPTABS_H) $(INSN_ATTR_H) insn-config.h \
2220   langhooks.h $(GGC_H) gt-dojump.h
2221builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2222   $(TREE_H) $(TREE_GIMPLE_H) $(FLAGS_H) $(TARGET_H) $(FUNCTION_H) $(REGS_H) \
2223   $(EXPR_H) $(OPTABS_H) insn-config.h $(RECOG_H) output.h typeclass.h \
2224   hard-reg-set.h toplev.h hard-reg-set.h except.h $(TM_P_H) $(PREDICT_H) \
2225   libfuncs.h $(REAL_H) langhooks.h $(BASIC_BLOCK_H) tree-mudflap.h \
2226   $(BUILTINS_DEF) $(MACHMODE_H)
2227calls.o : calls.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2228   $(TREE_H) $(FLAGS_H) $(EXPR_H) $(OPTABS_H) langhooks.h $(TARGET_H) \
2229   libfuncs.h $(REGS_H) toplev.h output.h $(FUNCTION_H) $(TIMEVAR_H) $(TM_P_H) \
2230   $(CGRAPH_H) except.h sbitmap.h
2231expmed.o : expmed.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
2232   $(FLAGS_H) insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) $(REAL_H) \
2233   toplev.h $(TM_P_H) langhooks.h
2234explow.o : explow.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
2235   $(FLAGS_H) hard-reg-set.h insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) \
2236   toplev.h $(FUNCTION_H) $(GGC_H) $(TM_P_H) langhooks.h gt-explow.h \
2237   $(TARGET_H) output.h
2238optabs.o : optabs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2239   $(TREE_H) $(FLAGS_H) insn-config.h $(EXPR_H) $(OPTABS_H) libfuncs.h \
2240   $(RECOG_H) reload.h toplev.h $(GGC_H) $(REAL_H) $(TM_P_H) except.h \
2241   gt-optabs.h $(BASIC_BLOCK_H) $(TARGET_H) $(FUNCTION_H)
2242dbxout.o : dbxout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2243   $(RTL_H) $(FLAGS_H) $(REGS_H) debug.h $(TM_P_H) $(TARGET_H) $(FUNCTION_H) \
2244   langhooks.h insn-config.h reload.h gstab.h xcoffout.h output.h dbxout.h \
2245   toplev.h $(GGC_H) $(OBSTACK_H) $(EXPR_H) gt-dbxout.h
2246debug.o : debug.c debug.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)
2247sdbout.o : sdbout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) debug.h \
2248   $(TREE_H) $(GGC_H) $(RTL_H) $(REGS_H) $(FLAGS_H) insn-config.h \
2249   output.h toplev.h $(TM_P_H) gsyms.h langhooks.h $(TARGET_H) sdbout.h \
2250   gt-sdbout.h reload.h $(VARRAY_H)
2251dwarf2out.o : dwarf2out.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2252   $(TREE_H) version.h $(RTL_H) dwarf2.h debug.h $(FLAGS_H) insn-config.h \
2253   output.h $(DIAGNOSTIC_H) $(REAL_H) hard-reg-set.h $(REGS_H) $(EXPR_H) \
2254   libfuncs.h toplev.h dwarf2out.h reload.h $(GGC_H) except.h dwarf2asm.h \
2255   $(TM_P_H) langhooks.h $(HASHTAB_H) gt-dwarf2out.h $(TARGET_H) $(CGRAPH_H) \
2256   $(MD5_H) input.h $(FUNCTION_H) $(VARRAY_H)
2257dwarf2asm.o : dwarf2asm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2258   $(FLAGS_H) $(RTL_H) $(TREE_H) output.h dwarf2asm.h $(TM_P_H) $(GGC_H) \
2259   gt-dwarf2asm.h dwarf2.h $(SPLAY_TREE_H) $(TARGET_H)
2260vmsdbgout.o : vmsdbgout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) version.h \
2261   $(RTL_H) $(FLAGS_H) output.h vmsdbg.h debug.h langhooks.h $(FUNCTION_H) $(TARGET_H)
2262xcoffout.o : xcoffout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2263   $(TREE_H) $(RTL_H) xcoffout.h $(FLAGS_H) toplev.h output.h dbxout.h \
2264   $(GGC_H) $(TARGET_H) gstab.h xcoff.h
2265emit-rtl.o : emit-rtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2266   $(TREE_H) $(FLAGS_H) $(FUNCTION_H) $(REGS_H) insn-config.h $(RECOG_H) \
2267   $(GGC_H) $(EXPR_H) hard-reg-set.h bitmap.h toplev.h $(BASIC_BLOCK_H) \
2268   $(HASHTAB_H) $(TM_P_H) debug.h langhooks.h tree-pass.h gt-emit-rtl.h \
2269   $(REAL_H)
2270real.o : real.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2271   toplev.h $(TM_P_H) $(REAL_H)
2272dfp.o : dfp.c dfp.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	$(TREE_H) \
2273   toplev.h $(TM_P_H) $(REAL_H) $(DECNUM_H)
2274integrate.o : integrate.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2275   $(RTL_H) $(TREE_H) $(FLAGS_H) debug.h $(INTEGRATE_H) insn-config.h \
2276   $(EXPR_H) $(REAL_H) $(REGS_H) intl.h $(FUNCTION_H) output.h $(RECOG_H) \
2277   except.h toplev.h $(PARAMS_H) $(TM_P_H) $(TARGET_H) langhooks.h \
2278   gt-integrate.h $(GGC_H) tree-pass.h
2279jump.o : jump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2280   $(FLAGS_H) hard-reg-set.h $(REGS_H) insn-config.h $(RECOG_H) $(EXPR_H) \
2281   $(REAL_H) except.h $(FUNCTION_H) tree-pass.h $(DIAGNOSTIC_H) \
2282   toplev.h $(INSN_ATTR_H) $(TM_P_H) reload.h $(PREDICT_H) \
2283   $(TIMEVAR_H) $(TARGET_H)
2284simplify-rtx.o : simplify-rtx.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2285   $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h \
2286   $(RECOG_H) $(EXPR_H) toplev.h output.h $(FUNCTION_H) $(GGC_H) $(TM_P_H) \
2287   $(TREE_H) $(TARGET_H)
2288cgraph.o : cgraph.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2289   langhooks.h toplev.h $(FLAGS_H) $(GGC_H) $(TARGET_H) $(CGRAPH_H) \
2290   gt-cgraph.h output.h intl.h $(BASIC_BLOCK_H) debug.h $(HASHTAB_H) \
2291   $(TREE_INLINE_H) $(VARRAY_H) $(TREE_DUMP_H)
2292cgraphunit.o : cgraphunit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2293   $(TREE_H) langhooks.h $(TREE_INLINE_H) toplev.h $(FLAGS_H) $(GGC_H) \
2294   $(TARGET_H) $(CGRAPH_H) intl.h pointer-set.h $(FUNCTION_H) $(TREE_GIMPLE_H) \
2295   $(TREE_FLOW_H) tree-pass.h $(C_COMMON_H) debug.h $(DIAGNOSTIC_H) \
2296   $(FIBHEAP_H) output.h $(PARAMS_H) $(RTL_H) $(TIMEVAR_H) ipa-prop.h \
2297   gt-cgraphunit.h
2298ipa.o : ipa.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(CGRAPH_H) 
2299ipa-prop.o : ipa-prop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h  \
2300   langhooks.h $(GGC_H) $(TARGET_H) $(CGRAPH_H) ipa-prop.h \
2301   $(TREE_FLOW_H) $(TM_H) tree-pass.h $(FLAGS_H) $(TREE_H)
2302ipa-cp.o : ipa-cp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h  \
2303   langhooks.h $(TARGET_H) $(CGRAPH_H) ipa-prop.h  \
2304   $(TREE_FLOW_H) $(TM_H) tree-pass.h $(FLAGS_H) $(TREE_H) $(DIAGNOSTIC_H)
2305ipa-inline.o : ipa-inline.c gt-ipa-inline.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2306   $(TREE_H) langhooks.h $(TREE_INLINE_H) $(FLAGS_H) $(CGRAPH_H) intl.h \
2307   $(DIAGNOSTIC_H) $(FIBHEAP_H) $(PARAMS_H) $(TIMEVAR_H) tree-pass.h \
2308   $(COVERAGE_H) $(HASHTAB_H) 
2309ipa-utils.o : ipa-utils.c $(IPA_UTILS_H) $(CONFIG_H) $(SYSTEM_H) \
2310   coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
2311   pointer-set.h $(GGC_H) $(C_COMMON_H) $(TREE_GIMPLE_H) \
2312   $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h $(DIAGNOSTIC_H) 
2313ipa-reference.o : ipa-reference.c $(CONFIG_H) $(SYSTEM_H) \
2314   coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
2315   pointer-set.h $(GGC_H) $(IPA_REFERENCE_H) $(IPA_UTILS_H) $(C_COMMON_H) \
2316   $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h \
2317   $(DIAGNOSTIC_H) $(FUNCTION_H) 
2318
2319ipa-pure-const.o : ipa-pure-const.c $(CONFIG_H) $(SYSTEM_H) \
2320   coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
2321   pointer-set.h $(GGC_H) $(IPA_UTILS_H) $(C_COMMON_H) $(TARGET_H) \
2322   $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h $(DIAGNOSTIC_H)  
2323ipa-type-escape.o : ipa-type-escape.c $(CONFIG_H) $(SYSTEM_H) \
2324   coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
2325   pointer-set.h $(GGC_H) $(IPA_TYPE_ESCAPE_H) $(IPA_UTILS_H) $(C_COMMON_H) \
2326   $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h \
2327   $(DIAGNOSTIC_H) $(FUNCTION_H) 
2328
2329coverage.o : coverage.c $(GCOV_IO_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2330   $(TM_H) $(RTL_H) $(TREE_H) $(FLAGS_H) output.h $(REGS_H) $(EXPR_H) \
2331   $(FUNCTION_H) toplev.h $(GGC_H) langhooks.h $(COVERAGE_H) gt-coverage.h \
2332   $(HASHTAB_H) $(CGRAPH_H) tree-iterator.h
2333cselib.o : cselib.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2334   $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h $(RECOG_H) \
2335   $(EMIT_RTL_H) toplev.h output.h $(FUNCTION_H) cselib.h $(GGC_H) $(TM_P_H) \
2336   gt-cselib.h $(PARAMS_H) alloc-pool.h $(HASHTAB_H) $(TARGET_H)
2337cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
2338   hard-reg-set.h $(FLAGS_H) insn-config.h $(RECOG_H) $(EXPR_H) toplev.h \
2339   output.h $(FUNCTION_H) $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H) \
2340   except.h $(TARGET_H) $(PARAMS_H) rtlhooks-def.h tree-pass.h $(REAL_H)
2341web.o : web.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2342   hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h toplev.h \
2343   $(DF_H) $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h
2344see.o : see.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2345   hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h toplev.h \
2346   $(DF_H) $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h $(EXPR_H)
2347gcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2348   $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h $(GGC_H) \
2349   $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h toplev.h \
2350   $(TM_P_H) $(PARAMS_H) except.h gt-gcse.h $(TREE_H) cselib.h $(TIMEVAR_H) \
2351   intl.h $(OBSTACK_H) tree-pass.h
2352resource.o : resource.c $(CONFIG_H) $(RTL_H) hard-reg-set.h $(SYSTEM_H) \
2353   coretypes.h $(TM_H) $(REGS_H) $(FLAGS_H) output.h $(RESOURCE_H) \
2354   $(FUNCTION_H) toplev.h $(INSN_ATTR_H) except.h $(PARAMS_H) $(TM_P_H)
2355lcm.o : lcm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
2356   hard-reg-set.h $(FLAGS_H) insn-config.h $(INSN_ATTR_H) $(RECOG_H) \
2357   $(BASIC_BLOCK_H) $(TM_P_H) $(FUNCTION_H) output.h $(REAL_H)
2358mode-switching.o : mode-switching.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2359   $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2360   $(INSN_ATTR_H) $(RECOG_H) $(BASIC_BLOCK_H) $(TM_P_H) $(FUNCTION_H) \
2361   output.h tree-pass.h $(TIMEVAR_H) $(REAL_H)
2362tree-ssa-dce.o : tree-ssa-dce.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2363    $(RTL_H) $(TM_P_H) $(TREE_FLOW_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) \
2364    coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) $(BASIC_BLOCK_H) \
2365    $(GGC_H) hard-reg-set.h $(OBSTACK_H) $(TREE_GIMPLE_H) $(CFGLOOP_H) \
2366    $(SCEV_H)
2367tree-ssa-ccp.o : tree-ssa-ccp.c $(TREE_FLOW_H) $(CONFIG_H) \
2368   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
2369   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
2370   $(TREE_DUMP_H) $(BASIC_BLOCK_H) tree-pass.h langhooks.h \
2371   tree-ssa-propagate.h $(FLAGS_H) $(TARGET_H) toplev.h
2372tree-sra.o : tree-sra.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) \
2373    $(TM_P_H) $(TREE_FLOW_H) $(DIAGNOSTIC_H) $(TREE_INLINE_H) \
2374    $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) $(TREE_GIMPLE_H) \
2375    langhooks.h tree-pass.h $(FLAGS_H) $(EXPR_H) $(BASIC_BLOCK_H) \
2376    bitmap.h $(GGC_H) hard-reg-set.h $(OBSTACK_H) $(PARAMS_H) $(TARGET_H)
2377tree-complex.o : tree-complex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
2378    $(TM_H) $(RTL_H) $(REAL_H) $(FLAGS_H) $(TREE_FLOW_H) $(TREE_GIMPLE_H) \
2379    tree-iterator.h tree-pass.h tree-ssa-propagate.h $(DIAGNOSTIC_H)
2380tree-vect-generic.o : tree-vect-generic.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2381    $(TM_H) $(TREE_FLOW_H) $(TREE_GIMPLE_H) tree-iterator.h tree-pass.h \
2382    $(FLAGS_H) $(OPTABS_H) $(RTL_H) $(MACHMODE_H) $(EXPR_H) \
2383    langhooks.h $(FLAGS_H) $(DIAGNOSTIC_H) gt-tree-vect-generic.h $(GGC_H) \
2384    coretypes.h insn-codes.h
2385df-core.o : df-core.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2386   insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
2387   hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) bitmap.h sbitmap.h \
2388   $(TM_P_H) $(FLAGS_H) output.h tree-pass.h
2389df-problems.o : df-problems.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2390   $(RTL_H) insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
2391   hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) bitmap.h sbitmap.h $(TM_P_H) \
2392   $(FLAGS_H) output.h vecprim.h
2393df-scan.o : df-scan.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2394   insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
2395   hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) bitmap.h sbitmap.h $(TM_P_H) \
2396   $(FLAGS_H) $(TARGET_H) $(TARGET_DEF_H) $(TREE_H) output.h tree-pass.h 
2397var-tracking.o : var-tracking.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2398   $(RTL_H) $(TREE_H) hard-reg-set.h insn-config.h reload.h $(FLAGS_H) \
2399   $(BASIC_BLOCK_H) output.h sbitmap.h alloc-pool.h $(FIBHEAP_H) $(HASHTAB_H) \
2400   $(REGS_H) $(EXPR_H) $(TIMEVAR_H) tree-pass.h
2401conflict.o : conflict.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(OBSTACK_H) \
2402   $(HASHTAB_H) $(RTL_H) hard-reg-set.h $(BASIC_BLOCK_H)
2403profile.o : profile.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2404   $(TREE_H) $(FLAGS_H) output.h $(REGS_H) $(EXPR_H) $(FUNCTION_H) \
2405   toplev.h $(COVERAGE_H) $(TREE_FLOW_H) value-prof.h cfghooks.h \
2406   $(CFGLOOP_H) $(TIMEVAR_H) tree-pass.h
2407tree-profile.o : tree-profile.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2408   $(TM_H) $(RTL_H) $(TREE_H) $(FLAGS_H) output.h $(REGS_H) $(EXPR_H) \
2409   $(FUNCTION_H) toplev.h $(COVERAGE_H) $(TREE_H) value-prof.h $(TREE_DUMP_H) \
2410   tree-pass.h $(TREE_FLOW_H) $(TIMEVAR_H) $(GGC_H) gt-tree-profile.h
2411value-prof.o : value-prof.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2412   $(BASIC_BLOCK_H) hard-reg-set.h value-prof.h $(EXPR_H) output.h $(FLAGS_H) \
2413   $(RECOG_H) insn-config.h $(OPTABS_H) $(REGS_H) $(GGC_H) $(DIAGNOSTIC_H) \
2414   $(TREE_H) $(COVERAGE_H) $(RTL_H) $(GCOV_IO_H) $(TREE_FLOW_H) \
2415   tree-flow-inline.h $(TIMEVAR_H) tree-pass.h
2416loop-doloop.o : loop-doloop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2417   $(RTL_H) $(FLAGS_H) $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) $(TM_P_H) \
2418   toplev.h $(CFGLOOP_H) output.h $(PARAMS_H) $(TARGET_H)
2419alloc-pool.o : alloc-pool.c $(CONFIG_H) $(SYSTEM_H) alloc-pool.h $(HASHTAB_H)
2420flow.o : flow.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2421   $(TREE_H) $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) \
2422   hard-reg-set.h output.h toplev.h $(RECOG_H) $(FUNCTION_H) except.h \
2423   $(EXPR_H) $(TM_P_H) $(OBSTACK_H) $(SPLAY_TREE_H) $(TIMEVAR_H) tree-pass.h
2424cfg.o : cfg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(FLAGS_H) \
2425   $(REGS_H) hard-reg-set.h output.h toplev.h $(FUNCTION_H) except.h $(GGC_H) \
2426   $(TM_P_H) $(TIMEVAR_H) $(OBSTACK_H) $(TREE_H) alloc-pool.h $(HASHTAB_H)
2427cfghooks.o: cfghooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2428   $(TREE_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) $(TIMEVAR_H) toplev.h
2429cfgexpand.o : cfgexpand.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
2430   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) \
2431   coretypes.h $(TREE_DUMP_H) except.h langhooks.h tree-pass.h $(RTL_H) \
2432   $(DIAGNOSTIC_H) toplev.h $(BASIC_BLOCK_H) $(FLAGS_H) debug.h $(PARAMS_H)
2433cfgrtl.o : cfgrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2434   $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h \
2435   output.h toplev.h $(FUNCTION_H) except.h $(TM_P_H) insn-config.h $(EXPR_H) \
2436   $(CFGLAYOUT_H) $(CFGLOOP_H) $(OBSTACK_H) $(TARGET_H) $(TREE_H) \
2437   tree-pass.h
2438cfganal.o : cfganal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2439   $(BASIC_BLOCK_H) hard-reg-set.h insn-config.h $(RECOG_H) $(TM_P_H) \
2440   $(TIMEVAR_H) $(OBSTACK_H) toplev.h
2441cfgbuild.o : cfgbuild.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2442   $(FLAGS_H) $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h \
2443   $(FUNCTION_H) except.h $(TIMEVAR_H) $(TREE_H)
2444cfgcleanup.o : cfgcleanup.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2445   $(RTL_H) $(TIMEVAR_H) hard-reg-set.h output.h $(FLAGS_H) $(RECOG_H) \
2446   toplev.h insn-config.h cselib.h $(TARGET_H) $(TM_P_H) $(PARAMS_H) \
2447   $(REGS_H) $(EMIT_RTL_H) $(CFGLAYOUT_H) tree-pass.h $(CFGLOOP_H) $(EXPR_H)
2448cfgloop.o : cfgloop.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) coretypes.h $(TM_H) \
2449   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(FLAGS_H) $(FUNCTION_H) \
2450   $(OBSTACK_H) toplev.h $(TREE_FLOW_H) $(TREE_H)
2451cfgloopanal.o : cfgloopanal.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
2452   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(EXPR_H) coretypes.h $(TM_H) \
2453   $(OBSTACK_H) output.h
2454struct-equiv.o : struct-equiv.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2455   $(RTL_H) hard-reg-set.h output.h $(FLAGS_H) $(RECOG_H) \
2456   insn-config.h $(TARGET_H) $(TM_P_H) $(PARAMS_H) \
2457   $(REGS_H) $(EMIT_RTL_H)
2458loop-iv.o : loop-iv.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(BASIC_BLOCK_H) \
2459   hard-reg-set.h $(CFGLOOP_H) $(EXPR_H) coretypes.h $(TM_H) $(OBSTACK_H) \
2460   output.h intl.h $(DF_H) $(HASHTAB_H)
2461loop-invariant.o : loop-invariant.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
2462   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(EXPR_H) coretypes.h \
2463   $(TM_H) $(TM_P_H) $(FUNCTION_H) $(FLAGS_H) $(DF_H) $(OBSTACK_H) output.h \
2464   $(HASHTAB_H) except.h
2465cfgloopmanip.o : cfgloopmanip.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
2466   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) output.h \
2467   coretypes.h $(TM_H) cfghooks.h $(OBSTACK_H)
2468loop-init.o : loop-init.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
2469   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) \
2470   coretypes.h $(TM_H) $(OBSTACK_H) tree-pass.h $(TIMEVAR_H) $(FLAGS_H)
2471loop-unswitch.o : loop-unswitch.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TM_H) \
2472   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) $(PARAMS_H) \
2473   output.h $(EXPR_H) coretypes.h $(TM_H) $(OBSTACK_H)
2474loop-unroll.o: loop-unroll.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TM_H) \
2475   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) $(PARAMS_H) \
2476   output.h $(EXPR_H) coretypes.h $(TM_H) $(HASHTAB_H) $(RECOG_H) \
2477   $(OBSTACK_H)
2478dominance.o : dominance.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2479   hard-reg-set.h $(BASIC_BLOCK_H) et-forest.h $(OBSTACK_H) toplev.h $(TIMEVAR_H)
2480et-forest.o : et-forest.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2481   et-forest.h alloc-pool.h $(BASIC_BLOCK_H)
2482combine.o : combine.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2483   $(FLAGS_H) $(FUNCTION_H) insn-config.h $(INSN_ATTR_H) $(REGS_H) $(EXPR_H) \
2484   rtlhooks-def.h $(BASIC_BLOCK_H) $(RECOG_H) $(REAL_H) hard-reg-set.h \
2485   toplev.h $(TM_P_H) $(TREE_H) $(TARGET_H) output.h $(PARAMS_H) $(OPTABS_H) \
2486   insn-codes.h $(TIMEVAR_H) tree-pass.h
2487regclass.o : regclass.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2488   hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(REGS_H) insn-config.h \
2489   $(RECOG_H) reload.h $(REAL_H) toplev.h $(FUNCTION_H) output.h $(GGC_H) \
2490   $(TM_P_H) $(EXPR_H) $(TIMEVAR_H) gt-regclass.h $(HASHTAB_H) \
2491   $(TARGET_H)
2492local-alloc.o : local-alloc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2493   $(RTL_H) $(FLAGS_H) $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
2494   output.h $(FUNCTION_H) $(INSN_ATTR_H) toplev.h  except.h reload.h $(TM_P_H) \
2495   $(GGC_H) $(INTEGRATE_H) $(TIMEVAR_H) tree-pass.h
2496bitmap.o : bitmap.c $(CONFIG_H) $(SYSTEM_H)  coretypes.h $(TM_H) $(RTL_H) \
2497   $(FLAGS_H) $(GGC_H) gt-bitmap.h bitmap.h $(OBSTACK_H)
2498global.o : global.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2499   $(FLAGS_H) reload.h $(FUNCTION_H) $(RECOG_H) $(REGS_H) hard-reg-set.h \
2500   insn-config.h output.h toplev.h $(TM_P_H) $(MACHMODE_H) tree-pass.h \
2501   $(TIMEVAR_H) vecprim.h
2502varray.o : varray.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) \
2503   $(HASHTAB_H) $(BCONFIG_H) $(VARRAY_H) toplev.h
2504vec.o : vec.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) coretypes.h vec.h $(GGC_H) \
2505   toplev.h
2506reload.o : reload.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2507   $(FLAGS_H) output.h $(EXPR_H) $(OPTABS_H) reload.h $(RECOG_H) \
2508   hard-reg-set.h insn-config.h $(REGS_H) $(FUNCTION_H) toplev.h \
2509   addresses.h $(TM_P_H) $(PARAMS_H) $(TARGET_H) $(REAL_H)
2510reload1.o : reload1.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2511   $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) hard-reg-set.h insn-config.h \
2512   $(BASIC_BLOCK_H) $(RECOG_H) output.h $(FUNCTION_H) toplev.h $(TM_P_H) \
2513   addresses.h except.h $(TREE_H) $(REAL_H) $(FLAGS_H) $(MACHMODE_H) \
2514   $(OBSTACK_H) $(TARGET_H)
2515rtlhooks.o :  rtlhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2516   rtlhooks-def.h $(EXPR_H) $(RECOG_H)
2517postreload.o : postreload.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2518   $(RTL_H) $(REAL_H) $(FLAGS_H) $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) \
2519   hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) output.h \
2520   $(FUNCTION_H) toplev.h cselib.h $(TM_P_H) except.h $(TREE_H) $(MACHMODE_H) \
2521   $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h
2522postreload-gcse.o : postreload-gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2523   $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2524   $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h toplev.h \
2525   $(TM_P_H) except.h $(TREE_H) $(TARGET_H) $(HASHTAB_H) intl.h $(OBSTACK_H) \
2526   $(PARAMS_H) $(TIMEVAR_H) tree-pass.h $(REAL_H)
2527caller-save.o : caller-save.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2528   $(FLAGS_H) $(REGS_H) hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(FUNCTION_H) \
2529   addresses.h $(RECOG_H) reload.h $(EXPR_H) toplev.h $(TM_P_H)
2530bt-load.o : bt-load.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) except.h \
2531   $(RTL_H) hard-reg-set.h $(REGS_H) $(TM_P_H) $(FIBHEAP_H) output.h $(EXPR_H) \
2532   $(TARGET_H) $(FLAGS_H) $(INSN_ATTR_H) $(FUNCTION_H) tree-pass.h toplev.h
2533reorg.o : reorg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2534   conditions.h hard-reg-set.h $(BASIC_BLOCK_H) $(REGS_H) insn-config.h \
2535   $(INSN_ATTR_H) except.h $(RECOG_H) $(FUNCTION_H) $(FLAGS_H) output.h \
2536   $(EXPR_H) toplev.h $(PARAMS_H) $(TM_P_H) $(OBSTACK_H) $(RESOURCE_H) \
2537   $(TIMEVAR_H) $(TARGET_H) tree-pass.h
2538alias.o : alias.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2539   $(FLAGS_H) hard-reg-set.h $(BASIC_BLOCK_H) $(REGS_H) toplev.h output.h \
2540   $(ALIAS_H) $(EMIT_RTL_H) $(GGC_H) $(FUNCTION_H) cselib.h $(TREE_H) $(TM_P_H) \
2541   langhooks.h $(TARGET_H) gt-alias.h $(TIMEVAR_H) $(CGRAPH_H) \
2542   $(SPLAY_TREE_H) $(VARRAY_H) $(IPA_TYPE_ESCAPE_H) tree-pass.h
2543regmove.o : regmove.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2544   insn-config.h $(TIMEVAR_H) tree-pass.h \
2545   $(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
2546   $(EXPR_H) $(BASIC_BLOCK_H) toplev.h $(TM_P_H) except.h reload.h
2547ddg.o : ddg.c $(DDG_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) \
2548   toplev.h $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) \
2549   $(FLAGS_H) insn-config.h $(INSN_ATTR_H) except.h $(RECOG_H) \
2550   $(SCHED_INT_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(EXPR_H) bitmap.h $(DF_H) \
2551   hard-reg-set.h sbitmap.h $(TM_H)
2552modulo-sched.o : modulo-sched.c $(DDG_H) $(CONFIG_H) $(CONFIG_H) $(SYSTEM_H) \
2553   coretypes.h $(TARGET_H) toplev.h $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) \
2554   $(FLAGS_H) insn-config.h $(INSN_ATTR_H) except.h $(RECOG_H) \
2555   $(SCHED_INT_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(EXPR_H) $(PARAMS_H) \
2556   cfghooks.h $(DF_H) $(GCOV_IO_H) hard-reg-set.h $(TM_H) $(TIMEVAR_H) \
2557   tree-pass.h
2558haifa-sched.o : haifa-sched.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2559   $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2560   $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H) \
2561   $(TARGET_H) output.h $(PARAMS_H)
2562sched-deps.o : sched-deps.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2563   $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2564   $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h cselib.h \
2565   $(PARAMS_H) $(TM_P_H) $(DF_H)
2566sched-rgn.o : sched-rgn.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2567   $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2568   $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(PARAMS_H) \
2569   $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h
2570sched-ebb.o : sched-ebb.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2571   $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2572   $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H) \
2573   $(PARAMS_H) $(CFGLAYOUT_H) $(TARGET_H) output.h
2574sched-vis.o : sched-vis.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2575   $(RTL_H) $(SCHED_INT_H) hard-reg-set.h $(BASIC_BLOCK_H) $(OBSTACK_H) \
2576   $(TM_P_H) $(REAL_H) toplev.h tree-pass.h
2577final.o : final.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2578   $(TREE_H) $(FLAGS_H) intl.h $(REGS_H) $(RECOG_H) conditions.h \
2579   insn-config.h $(INSN_ATTR_H) $(FUNCTION_H) output.h hard-reg-set.h \
2580   except.h debug.h xcoffout.h toplev.h reload.h dwarf2out.h tree-pass.h \
2581   $(BASIC_BLOCK_H) $(TM_P_H) $(TARGET_H) $(EXPR_H) $(CFGLAYOUT_H) dbxout.h \
2582   $(TIMEVAR_H) $(CGRAPH_H) $(COVERAGE_H) $(REAL_H)
2583recog.o : recog.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2584   $(FUNCTION_H) $(BASIC_BLOCK_H) $(REGS_H) $(RECOG_H) $(EXPR_H) \
2585   $(FLAGS_H) insn-config.h $(INSN_ATTR_H) toplev.h output.h reload.h \
2586   addresses.h $(TM_P_H) $(TIMEVAR_H) tree-pass.h hard-reg-set.h $(REAL_H)
2587reg-stack.o : reg-stack.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2588   $(RTL_H) $(TREE_H) $(RECOG_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) \
2589   insn-config.h toplev.h reload.h $(FUNCTION_H) $(TM_P_H) $(GGC_H) \
2590   $(BASIC_BLOCK_H) output.h $(VARRAY_H) $(TIMEVAR_H) tree-pass.h \
2591   $(TARGET_H) vecprim.h
2592sreal.o: sreal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) sreal.h
2593predict.o: predict.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2594   $(TREE_H) $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) \
2595   hard-reg-set.h output.h toplev.h $(RECOG_H) $(FUNCTION_H) except.h \
2596   $(TM_P_H) $(PREDICT_H) sreal.h $(PARAMS_H) $(TARGET_H) $(CFGLOOP_H) \
2597   $(COVERAGE_H) $(SCEV_H) $(GGC_H) predict.def $(TIMEVAR_H) $(TREE_DUMP_H) \
2598   $(TREE_FLOW_H) tree-pass.h $(EXPR_H)
2599lists.o: lists.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \
2600   $(RTL_H) $(GGC_H) gt-lists.h
2601bb-reorder.o : bb-reorder.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2602   $(RTL_H) $(FLAGS_H) $(TIMEVAR_H) output.h $(CFGLAYOUT_H) $(FIBHEAP_H) \
2603   $(TARGET_H) $(FUNCTION_H) $(TM_P_H) $(OBSTACK_H) $(EXPR_H) $(REGS_H) \
2604   $(PARAMS_H) toplev.h tree-pass.h
2605tracer.o : tracer.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2606   $(TREE_H) $(BASIC_BLOCK_H) hard-reg-set.h output.h $(CFGLAYOUT_H) \
2607   $(FLAGS_H) $(TIMEVAR_H) $(PARAMS_H) $(COVERAGE_H) $(FIBHEAP_H) \
2608   tree-pass.h
2609cfglayout.o : cfglayout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2610   $(RTL_H) $(TREE_H) insn-config.h $(BASIC_BLOCK_H) hard-reg-set.h output.h \
2611   $(FUNCTION_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(TARGET_H) gt-cfglayout.h \
2612   $(GGC_H) alloc-pool.h $(FLAGS_H) $(OBSTACK_H) tree-pass.h vecprim.h
2613timevar.o : timevar.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2614   $(TIMEVAR_H) $(FLAGS_H) intl.h toplev.h $(RTL_H) timevar.def
2615regrename.o : regrename.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2616   $(RTL_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h \
2617   output.h $(RECOG_H) $(FUNCTION_H) $(OBSTACK_H) $(FLAGS_H) $(TM_P_H) \
2618   addresses.h reload.h toplev.h $(TIMEVAR_H) tree-pass.h
2619ifcvt.o : ifcvt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2620   $(REGS_H) toplev.h $(FLAGS_H) insn-config.h $(FUNCTION_H) $(RECOG_H) \
2621   $(TARGET_H) $(BASIC_BLOCK_H) $(EXPR_H) output.h except.h $(TM_P_H) \
2622   $(REAL_H) $(OPTABS_H) $(CFGLOOP_H) hard-reg-set.h $(TIMEVAR_H) tree-pass.h
2623lambda-mat.o : lambda-mat.c $(LAMBDA_H) $(GGC_H) $(SYSTEM_H) $(CONFIG_H) \
2624   $(TM_H) coretypes.h $(TREE_H)
2625lambda-trans.o: lambda-trans.c $(LAMBDA_H) $(GGC_H) $(SYSTEM_H) $(CONFIG_H) \
2626   $(TM_H) coretypes.h $(TARGET_H) $(TREE_H)
2627lambda-code.o: lambda-code.c $(LAMBDA_H) $(GGC_H) $(SYSTEM_H) $(CONFIG_H) \
2628   $(TM_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) \
2629   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2630   $(TREE_DATA_REF_H) $(SCEV_H) $(EXPR_H) coretypes.h $(TARGET_H) \
2631   tree-chrec.h tree-pass.h vec.h vecprim.h
2632params.o : params.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(PARAMS_H) toplev.h
2633pointer-set.o: pointer-set.c pointer-set.h $(CONFIG_H) $(SYSTEM_H)
2634hooks.o: hooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(HOOKS_H)
2635pretty-print.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h intl.h $(PRETTY_PRINT_H) \
2636   $(TREE_H)
2637errors.o : errors.c $(CONFIG_H) $(SYSTEM_H) errors.h $(BCONFIG_H)
2638
2639$(out_object_file): $(out_file) $(CONFIG_H) coretypes.h $(TM_H) $(TREE_H) \
2640   $(RTL_H) $(REGS_H) hard-reg-set.h insn-config.h conditions.h \
2641   output.h $(INSN_ATTR_H) $(SYSTEM_H) toplev.h $(TARGET_H) libfuncs.h \
2642   $(TARGET_DEF_H) $(FUNCTION_H) $(SCHED_INT_H) $(TM_P_H) $(EXPR_H) \
2643   langhooks.h $(GGC_H) $(OPTABS_H) $(REAL_H) tm-constrs.h
2644	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
2645		$(out_file) $(OUTPUT_OPTION)
2646
2647# Build auxiliary files that support ecoff format.
2648mips-tfile: mips-tfile.o version.o $(LIBDEPS)
2649	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tfile.o version.o $(LIBS)
2650
2651mips-tfile.o : mips-tfile.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) coretypes.h \
2652   $(TM_H) version.h $(srcdir)/../include/getopt.h gstab.h intl.h
2653
2654mips-tdump: mips-tdump.o version.o $(LIBDEPS)
2655	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tdump.o version.o $(LIBS)
2656
2657mips-tdump.o : mips-tdump.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) coretypes.h \
2658   $(TM_H) version.h $(srcdir)/../include/getopt.h stab.def
2659
2660# FIXME: writing proper dependencies for this is a *LOT* of work.
2661libbackend.o : $(OBJS-common:.o=.c) $(out_file) \
2662  insn-config.h insn-flags.h insn-codes.h insn-constants.h \
2663  insn-attr.h  $(DATESTAMP) $(BASEVER) $(DEVPHASE)
2664	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
2665	  -DTARGET_NAME=\"$(target_noncanonical)\" \
2666	  -DLOCALEDIR=\"$(localedir)\" \
2667	  -c $(filter %.c,$^) -o $@  \
2668	  -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
2669	  -DDEVPHASE=$(DEVPHASE_s) -combine
2670
2671#
2672# Generate header and source files from the machine description,
2673# and compile them.
2674
2675.PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \
2676  insn-emit.c insn-recog.c insn-extract.c insn-output.c insn-peep.c \
2677  insn-attr.h insn-attrtab.c insn-preds.c
2678
2679# Dependencies for the md file.  The first time through, we just assume
2680# the md file itself and the generated dependency file (in order to get
2681# it built).  The second time through we have the dependency file.
2682-include mddeps.mk
2683MD_DEPS = s-mddeps $(md_file) $(MD_INCLUDES)
2684
2685s-mddeps: $(md_file) $(MD_INCLUDES) build/genmddeps$(build_exeext)
2686	$(RUN_GEN) build/genmddeps$(build_exeext) $(md_file) > tmp-mddeps
2687	$(SHELL) $(srcdir)/../move-if-change tmp-mddeps mddeps.mk
2688	$(STAMP) s-mddeps
2689
2690# Header dependencies for generated source files.
2691genrtl.o : genrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	$(RTL_H)\
2692  $(GGC_H)
2693insn-attrtab.o : insn-attrtab.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2694  $(TM_H) $(RTL_H) $(REGS_H) $(REAL_H) output.h $(INSN_ATTR_H)		\
2695  insn-config.h toplev.h $(RECOG_H) $(TM_P_H) $(FLAGS_H)
2696insn-automata.o : insn-automata.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2697  $(TM_H) $(RTL_H) $(REGS_H) $(REAL_H) output.h $(INSN_ATTR_H)		\
2698  insn-config.h toplev.h $(RECOG_H) $(TM_P_H) $(FLAGS_H)
2699insn-emit.o : insn-emit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	\
2700  $(RTL_H) $(EXPR_H) $(REAL_H) output.h insn-config.h $(OPTABS_H)	\
2701  reload.h $(RECOG_H) toplev.h $(FUNCTION_H) $(FLAGS_H) hard-reg-set.h	\
2702  $(RESOURCE_H) $(TM_P_H) $(BASIC_BLOCK_H) tm-constrs.h
2703insn-extract.o : insn-extract.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2704  $(TM_H) $(RTL_H) toplev.h insn-config.h $(RECOG_H)
2705insn-modes.o : insn-modes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	$(TM_H) \
2706  $(MACHMODE_H) $(REAL_H)
2707insn-opinit.o : insn-opinit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2708  $(TM_H) $(RTL_H) insn-config.h $(FLAGS_H) $(RECOG_H) $(EXPR_H)	\
2709  $(OPTABS_H) reload.h
2710insn-output.o : insn-output.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2711  $(TM_H) $(RTL_H) $(GGC_H) $(REGS_H) $(REAL_H) conditions.h		\
2712  hard-reg-set.h insn-config.h $(INSN_ATTR_H) $(EXPR_H) output.h	\
2713  $(RECOG_H) $(FUNCTION_H) toplev.h $(FLAGS_H) insn-codes.h $(TM_P_H)	\
2714  $(TARGET_H) tm-constrs.h
2715insn-peep.o : insn-peep.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	\
2716  $(RTL_H) $(REGS_H) output.h insn-config.h $(RECOG_H) except.h		\
2717  $(FUNCTION_H) $(TM_P_H) $(REAL_H) tm-constrs.h
2718insn-preds.o : insn-preds.c $(CONFIG_H) $(SYSTEM_H) coretypes.h		\
2719  $(TM_H) $(RTL_H) $(TREE_H) insn-config.h $(RECOG_H) output.h		\
2720  $(FLAGS_H) $(FUNCTION_H) hard-reg-set.h $(RESOURCE_H) $(TM_P_H)	\
2721  toplev.h reload.h $(REGS_H) $(REAL_H) tm-constrs.h
2722insn-recog.o : insn-recog.c $(CONFIG_H) $(SYSTEM_H) coretypes.h		\
2723  $(TM_H) $(RTL_H) insn-config.h $(RECOG_H) output.h $(FLAGS_H)		\
2724  $(FUNCTION_H) hard-reg-set.h $(RESOURCE_H) $(TM_P_H) toplev.h		\
2725  reload.h $(REAL_H) tm-constrs.h
2726
2727# For each of the files generated by running a generator program over
2728# the machine description, the following pair of static pattern rules
2729# runs the generator program only if the machine description has changed,
2730# but touches the target file only when its contents actually change.
2731# The "; @true" construct forces Make to recheck the timestamp on the
2732# target file.
2733
2734simple_generated_h = insn-attr.h insn-codes.h insn-config.h insn-flags.h 
2735
2736simple_generated_c = insn-attrtab.c insn-automata.c insn-emit.c \
2737		     insn-extract.c insn-opinit.c insn-output.c \
2738		     insn-peep.c insn-recog.c
2739
2740$(simple_generated_h): insn-%.h: s-%; @true
2741
2742$(simple_generated_h:insn-%.h=s-%): s-%: build/gen%$(build_exeext) \
2743  $(MD_DEPS) insn-conditions.md
2744	$(RUN_GEN) build/gen$*$(build_exeext) $(md_file) \
2745	  insn-conditions.md > tmp-$*.h
2746	$(SHELL) $(srcdir)/../move-if-change tmp-$*.h insn-$*.h
2747	$(STAMP) s-$*
2748
2749$(simple_generated_c): insn-%.c: s-%; @true
2750$(simple_generated_c:insn-%.c=s-%): s-%: build/gen%$(build_exeext) \
2751  $(MD_DEPS) insn-conditions.md
2752	$(RUN_GEN) build/gen$*$(build_exeext) $(md_file) \
2753	  insn-conditions.md > tmp-$*.c
2754	$(SHELL) $(srcdir)/../move-if-change tmp-$*.c insn-$*.c
2755	$(STAMP) s-$*
2756
2757# genconstants needs to run before insn-conditions.md is available
2758# (because the constants may be used in the conditions).
2759insn-constants.h: s-constants; @true
2760s-constants: build/genconstants$(build_exeext) $(MD_DEPS)
2761	$(RUN_GEN) build/genconstants$(build_exeext) $(md_file) \
2762	  > tmp-constants.h
2763	$(SHELL) $(srcdir)/../move-if-change tmp-constants.h insn-constants.h
2764	$(STAMP) s-constants
2765
2766# gencheck doesn't read the machine description, and the file produced
2767# doesn't use the insn-* convention.
2768tree-check.h: s-check ; @true
2769s-check : build/gencheck$(build_exeext)
2770	$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
2771	$(SHELL) $(srcdir)/../move-if-change tmp-check.h tree-check.h
2772	$(STAMP) s-check
2773
2774# gencondmd doesn't use the standard naming convention.
2775build/gencondmd.c: s-conditions; @true
2776s-conditions: $(MD_DEPS) build/genconditions$(build_exeext)
2777	$(RUN_GEN) build/genconditions$(build_exeext) $(md_file) > tmp-condmd.c
2778	$(SHELL) $(srcdir)/../move-if-change tmp-condmd.c build/gencondmd.c
2779	$(STAMP) s-conditions
2780
2781insn-conditions.md: s-condmd; @true
2782s-condmd: build/gencondmd$(build_exeext)
2783	$(RUN_GEN) build/gencondmd$(build_exeext) > tmp-cond.md
2784	$(SHELL) $(srcdir)/../move-if-change tmp-cond.md insn-conditions.md
2785	$(STAMP) s-condmd
2786
2787
2788# These files are generated by running the same generator more than
2789# once with different options, so they have custom rules.  The
2790# stampfile idiom is the same.
2791genrtl.c: s-genrtl; @true
2792genrtl.h: s-genrtl-h; @true
2793
2794s-genrtl: build/gengenrtl$(build_exeext)
2795	$(RUN_GEN) build/gengenrtl$(build_exeext) > tmp-genrtl.c
2796	$(SHELL) $(srcdir)/../move-if-change tmp-genrtl.c genrtl.c
2797	$(STAMP) s-genrtl
2798
2799s-genrtl-h: build/gengenrtl$(build_exeext)
2800	$(RUN_GEN) build/gengenrtl$(build_exeext) -h > tmp-genrtl.h
2801	$(SHELL) $(srcdir)/../move-if-change tmp-genrtl.h genrtl.h
2802	$(STAMP) s-genrtl-h
2803
2804insn-modes.c: s-modes; @true
2805insn-modes.h: s-modes-h; @true
2806min-insn-modes.c: s-modes-m; @true
2807
2808s-modes: build/genmodes$(build_exeext)
2809	$(RUN_GEN) build/genmodes$(build_exeext) > tmp-modes.c
2810	$(SHELL) $(srcdir)/../move-if-change tmp-modes.c insn-modes.c
2811	$(STAMP) s-modes
2812
2813s-modes-h: build/genmodes$(build_exeext)
2814	$(RUN_GEN) build/genmodes$(build_exeext) -h > tmp-modes.h
2815	$(SHELL) $(srcdir)/../move-if-change tmp-modes.h insn-modes.h
2816	$(STAMP) s-modes-h
2817
2818s-modes-m: build/genmodes$(build_exeext)
2819	$(RUN_GEN) build/genmodes$(build_exeext) -m > tmp-min-modes.c
2820	$(SHELL) $(srcdir)/../move-if-change tmp-min-modes.c min-insn-modes.c
2821	$(STAMP) s-modes-m
2822
2823insn-preds.c: s-preds; @true
2824tm-preds.h: s-preds-h; @true
2825tm-constrs.h: s-constrs-h; @true
2826
2827s-preds: $(MD_DEPS) build/genpreds$(build_exeext)
2828	$(RUN_GEN) build/genpreds$(build_exeext) $(md_file) > tmp-preds.c
2829	$(SHELL) $(srcdir)/../move-if-change tmp-preds.c insn-preds.c
2830	$(STAMP) s-preds
2831
2832s-preds-h: $(MD_DEPS) build/genpreds$(build_exeext)
2833	$(RUN_GEN) build/genpreds$(build_exeext) -h $(md_file) > tmp-preds.h
2834	$(SHELL) $(srcdir)/../move-if-change tmp-preds.h tm-preds.h
2835	$(STAMP) s-preds-h
2836
2837s-constrs-h: $(MD_DEPS) build/genpreds$(build_exeext)
2838	$(RUN_GEN) build/genpreds$(build_exeext) -c $(md_file) > tmp-constrs.h
2839	$(SHELL) $(srcdir)/../move-if-change tmp-constrs.h tm-constrs.h
2840	$(STAMP) s-constrs-h
2841
2842GTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h \
2843  $(CPP_ID_DATA_H) $(host_xm_file_list) \
2844  $(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \
2845  $(srcdir)/coverage.c $(srcdir)/rtl.h \
2846  $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/function.h $(srcdir)/libfuncs.h $(SYMTAB_H) \
2847  $(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \
2848  $(srcdir)/ipa-reference.h $(srcdir)/output.h \
2849  $(srcdir)/cselib.h $(srcdir)/basic-block.h  $(srcdir)/cgraph.h \
2850  $(srcdir)/c-common.h $(srcdir)/c-tree.h $(srcdir)/reload.h \
2851  $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \
2852  $(srcdir)/ipa-prop.c $(srcdir)/ipa-cp.c $(srcdir)/ipa-inline.c \
2853  $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \
2854  $(srcdir)/dojump.c $(srcdir)/tree-profile.c \
2855  $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \
2856  $(srcdir)/function.c $(srcdir)/except.h \
2857  $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \
2858  $(srcdir)/profile.c $(srcdir)/regclass.c \
2859  $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c \
2860  $(srcdir)/sdbout.c $(srcdir)/stor-layout.c \
2861  $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \
2862  $(srcdir)/tree-mudflap.c $(srcdir)/tree-flow.h \
2863  $(srcdir)/c-objc-common.c $(srcdir)/c-common.c $(srcdir)/c-parser.c \
2864  $(srcdir)/tree-ssanames.c $(srcdir)/tree-eh.c $(srcdir)/tree-ssa-address.c \
2865  $(srcdir)/tree-phinodes.c $(srcdir)/tree-cfg.c \
2866  $(srcdir)/tree-dfa.c $(srcdir)/tree-ssa-propagate.c \
2867  $(srcdir)/tree-iterator.c $(srcdir)/gimplify.c \
2868  $(srcdir)/tree-chrec.h $(srcdir)/tree-vect-generic.c \
2869  $(srcdir)/tree-ssa-operands.h $(srcdir)/tree-ssa-operands.c \
2870  $(srcdir)/tree-profile.c $(srcdir)/tree-nested.c \
2871  $(srcdir)/ipa-reference.c $(srcdir)/tree-ssa-structalias.h \
2872  $(srcdir)/tree-ssa-structalias.c \
2873  $(srcdir)/c-pragma.h $(srcdir)/omp-low.c \
2874  $(srcdir)/targhooks.c $(srcdir)/cgraphunit.c $(out_file) \
2875  @all_gtfiles@
2876
2877GTFILES_FILES_LANGS = @all_gtfiles_files_langs@
2878GTFILES_FILES_FILES = @all_gtfiles_files_files@
2879GTFILES_LANG_DIR_NAMES = @subdirs@
2880GTFILES_SRCDIR = @srcdir@
2881
2882GTFILES_FILES_FILES_C = $(subst $(srcdir)/,, \
2883	$(filter %.c, $(GTFILES_FILES_FILES)))
2884GTFILES_FILES_FILES_H = $(addprefix gt-, \
2885	$(subst /,-,$(GTFILES_FILES_FILES_C:.c=.h)))
2886GTFILES_LANG_DIR_NAMES_H = $(foreach d,$(GTFILES_LANG_DIR_NAMES), gtype-$(d).h)
2887ALL_GTFILES_H := $(sort $(GTFILES_FILES_FILES_H) $(GTFILES_LANG_DIR_NAMES_H))
2888
2889$(ALL_GTFILES_H) : s-gtype ; @true
2890
2891
2892gt-cgraph.h gt-coverage.h gtype-desc.h gtype-desc.c gt-except.h \
2893gt-function.h gt-integrate.h gt-tree.h gt-varasm.h \
2894gt-emit-rtl.h gt-explow.h gt-stor-layout.h gt-regclass.h \
2895gt-lists.h gt-alias.h gt-cselib.h gt-gcse.h \
2896gt-expr.h gt-sdbout.h gt-optabs.h gt-bitmap.h gt-dojump.h \
2897gt-dwarf2out.h gt-dwarf2asm.h \
2898gt-dbxout.h \
2899gtype-c.h gt-cfglayout.h \
2900gt-tree-mudflap.h gt-tree-vect-generic.h \
2901gt-tree-profile.h gt-tree-ssa-address.h \
2902gt-tree-ssanames.h gt-tree-iterator.h gt-gimplify.h \
2903gt-tree-phinodes.h gt-tree-nested.h \
2904gt-tree-ssa-operands.h gt-tree-ssa-propagate.h \
2905gt-tree-ssa-structalias.h gt-ipa-inline.h gt-cgraphunit.h \
2906gt-stringpool.h gt-targhooks.h gt-omp-low.h : s-gtype ; @true
2907
2908define echo_quoted_to_gtyp
2909 echo "\"$(gtyp)\", " >> tmp-gtyp.h
2910
2911endef
2912
2913gtyp-gen.h: s-gtyp-gen ; @true
2914s-gtyp-gen: Makefile
2915	echo "/* This file is machine generated.  Do not edit.  */" > tmp-gtyp.h
2916	echo "static const char *const srcdir = "  >> tmp-gtyp.h
2917	echo "\"$(GTFILES_SRCDIR)\"" >> tmp-gtyp.h
2918	echo ";" >> tmp-gtyp.h
2919	echo "static const char *const lang_files[] = {" >> tmp-gtyp.h
2920	$(foreach gtyp,$(GTFILES_FILES_FILES),$(echo_quoted_to_gtyp))
2921	echo "NULL};" >> tmp-gtyp.h
2922	echo "static const char *const langs_for_lang_files[] = {" >> tmp-gtyp.h
2923	$(foreach gtyp,$(GTFILES_FILES_LANGS),$(echo_quoted_to_gtyp))
2924	echo "NULL};" >> tmp-gtyp.h
2925	echo "static const char *const all_files[] = {" >> tmp-gtyp.h
2926	$(foreach gtyp,$(GTFILES),$(echo_quoted_to_gtyp))
2927	echo " NULL};" >> tmp-gtyp.h
2928	echo "static const char *const lang_dir_names[] = { \"c\", " >> tmp-gtyp.h
2929	$(foreach gtyp,$(GTFILES_LANG_DIR_NAMES),$(echo_quoted_to_gtyp))
2930	echo "NULL};" >> tmp-gtyp.h
2931	$(SHELL) $(srcdir)/../move-if-change tmp-gtyp.h gtyp-gen.h
2932	$(STAMP) s-gtyp-gen
2933
2934s-gtype: build/gengtype$(build_exeext) $(GTFILES)
2935	$(RUN_GEN) build/gengtype$(build_exeext)
2936	$(STAMP) s-gtype
2937
2938#
2939# How to compile object files to run on the build machine.
2940
2941build/%.o :  # dependencies provided by explicit rule later
2942	$(CC_FOR_BUILD) -c $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -o $@ $<
2943
2944# Header dependencies for the programs that generate source code.
2945# These are library modules...
2946build/errors.o : errors.c $(BCONFIG_H) $(SYSTEM_H) errors.h
2947build/gensupport.o: gensupport.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
2948  $(GTM_H) $(RTL_BASE_H) $(OBSTACK_H) errors.h $(HASHTAB_H)		\
2949  gensupport.h
2950build/ggc-none.o : ggc-none.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h 	\
2951  $(GGC_H)
2952build/min-insn-modes.o : min-insn-modes.c $(BCONFIG_H) $(SYSTEM_H)	\
2953  $(MACHMODE_H)
2954build/print-rtl.o: print-rtl.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
2955  $(GTM_H) $(RTL_BASE_H)
2956build/read-rtl.o: read-rtl.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
2957  $(GTM_H) $(RTL_BASE_H) $(OBSTACK_H) $(HASHTAB_H) gensupport.h
2958build/rtl.o: rtl.c $(BCONFIG_H) coretypes.h $(GTM_H) $(SYSTEM_H)	\
2959  $(RTL_H) $(REAL_H) $(GGC_H) errors.h
2960build/vec.o : vec.c $(BCONFIG_H) $(SYSTEM_H) $(TREE_H) coretypes.h vec.h \
2961   $(GGC_H) toplev.h
2962build/gencondmd.o : build/gencondmd.c $(BCONFIG_H) $(SYSTEM_H)		\
2963  coretypes.h $(GTM_H) insn-constants.h $(RTL_H) $(TM_P_H)		\
2964  $(FUNCTION_H) $(REGS_H) $(RECOG_H) $(REAL_H) output.h $(FLAGS_H)	\
2965  $(RESOURCE_H) toplev.h reload.h except.h tm-constrs.h
2966# This pulls in tm-pred.h which contains inline functions wrapping up
2967# predicates from the back-end so those functions must be discarded.
2968# No big deal since gencondmd.c is a dummy file for non-GCC compilers.
2969build/gencondmd.o : \
2970  BUILD_CFLAGS := $(filter-out -fkeep-inline-functions, $(BUILD_CFLAGS))
2971
2972# ...these are the programs themselves.
2973build/genattr.o : genattr.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
2974  coretypes.h $(GTM_H) errors.h gensupport.h
2975build/genattrtab.o : genattrtab.c $(RTL_BASE_H) $(OBSTACK_H)		\
2976  $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H) errors.h $(GGC_H)	\
2977  gensupport.h
2978build/genautomata.o : genautomata.c $(RTL_BASE_H) $(OBSTACK_H)		\
2979  $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H) errors.h vec.h		\
2980  $(HASHTAB_H) gensupport.h
2981build/gencheck.o : gencheck.c gencheck.h tree.def $(BCONFIG_H) $(GTM_H)	\
2982	$(SYSTEM_H) coretypes.h $(lang_tree_files)
2983build/genchecksum.o : genchecksum.c $(BCONFIG_H) $(SYSTEM_H) $(MD5_H)
2984build/gencodes.o : gencodes.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
2985  coretypes.h $(GTM_H) errors.h gensupport.h
2986build/genconditions.o : genconditions.c $(RTL_BASE_H) $(BCONFIG_H)	\
2987  $(SYSTEM_H) coretypes.h $(GTM_H) errors.h
2988build/genconfig.o : genconfig.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
2989  coretypes.h $(GTM_H) errors.h gensupport.h
2990build/genconstants.o : genconstants.c $(RTL_BASE_H) $(BCONFIG_H)	\
2991  $(SYSTEM_H) coretypes.h $(GTM_H) errors.h
2992build/genemit.o : genemit.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
2993  coretypes.h $(GTM_H) errors.h gensupport.h
2994build/genextract.o : genextract.c $(RTL_BASE_H) $(BCONFIG_H)		\
2995  $(SYSTEM_H) coretypes.h $(GTM_H) errors.h gensupport.h vecprim.h
2996build/genflags.o : genflags.c $(RTL_BASE_H) $(OBSTACK_H) $(BCONFIG_H)	\
2997  $(SYSTEM_H) coretypes.h $(GTM_H) errors.h gensupport.h
2998build/gengenrtl.o : gengenrtl.c $(BCONFIG_H) $(SYSTEM_H) rtl.def
2999build/gengtype-lex.o : gengtype-lex.c gengtype.h gengtype-yacc.h	\
3000  $(BCONFIG_H) coretypes.h $(GTM_H) $(SYSTEM_H) vec.h
3001build/gengtype-yacc.o : gengtype-yacc.c gengtype.h $(BCONFIG_H)		\
3002  $(SYSTEM_H) coretypes.h $(GTM_H)
3003build/gengtype.o : gengtype.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
3004  $(GTM_H) gengtype.h gtyp-gen.h rtl.def insn-notes.def errors.h
3005build/genmddeps.o: genmddeps.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
3006  $(GTM_H) $(RTL_BASE_H) errors.h gensupport.h
3007build/genmodes.o : genmodes.c $(BCONFIG_H) $(SYSTEM_H) errors.h		\
3008  $(HASHTAB_H) machmode.def $(extra_modes_file)
3009build/genopinit.o : genopinit.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3010  coretypes.h $(GTM_H) errors.h gensupport.h
3011build/genoutput.o : genoutput.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3012  coretypes.h $(GTM_H) errors.h gensupport.h
3013build/genpeep.o : genpeep.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3014  coretypes.h $(GTM_H) errors.h gensupport.h toplev.h
3015build/genpreds.o : genpreds.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3016  coretypes.h $(GTM_H) errors.h gensupport.h $(OBSTACK_H)
3017build/genrecog.o : genrecog.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3018  coretypes.h $(GTM_H) errors.h gensupport.h
3019
3020# Compile the programs that generate insn-* from the machine description.
3021# They are compiled with $(CC_FOR_BUILD), and associated libraries,
3022# since they need to run on this machine
3023# even if GCC is being compiled to run on some other machine.
3024
3025# As a general rule...
3026build/gen%$(build_exeext): build/gen%.o $(BUILD_LIBDEPS)
3027	$(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o $@ \
3028	    $(filter-out $(BUILD_LIBDEPS), $^) $(BUILD_LIBS)
3029
3030# All these programs use the MD reader ($(BUILD_RTL)).
3031genprogmd = attr attrtab automata codes conditions config constants emit \
3032	    extract flags mddeps opinit output peep preds recog
3033$(genprogmd:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_ERRORS)
3034
3035# These programs need libs over and above what they get from the above list.
3036build/genautomata$(build_exeext) : BUILD_LIBS += -lm
3037
3038# These programs are not linked with the MD reader.
3039build/gengenrtl$(build_exeext) : $(BUILD_ERRORS)
3040build/genmodes$(build_exeext) : $(BUILD_ERRORS)
3041build/gengtype$(build_exeext) : build/gengtype-lex.o \
3042  build/gengtype-yacc.o $(BUILD_ERRORS)
3043
3044# Generated source files for gengtype.
3045gengtype-lex.c : gengtype-lex.l
3046	-$(FLEX) $(FLEXFLAGS) -o$@ $<
3047# This is a pattern rule solely so that Make knows it need not run the
3048# command twice.  The modifier to $@ ensures that Bison is asked to
3049# produce a .c file, whether or not Make decides it needs the .h file
3050# first.
3051gengtype-y%.c gengtype-y%.h: gengtype-y%.y
3052	-$(BISON) $(BISONFLAGS) -d -o $(@:.h=.c) $<
3053
3054#
3055# Remake internationalization support.
3056intl.o: intl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h Makefile
3057	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
3058	  -DLOCALEDIR=\"$(localedir)\" \
3059	  -c $(srcdir)/intl.c $(OUTPUT_OPTION)
3060
3061#
3062# Remake cpp and protoize.
3063
3064PREPROCESSOR_DEFINES = \
3065  -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
3066  -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
3067  -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
3068  -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
3069  -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
3070  -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
3071  -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
3072  @TARGET_SYSTEM_ROOT_DEFINE@
3073
3074cppdefault.o: cppdefault.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
3075	cppdefault.h Makefile
3076	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
3077	  $(PREPROCESSOR_DEFINES) \
3078	  -c $(srcdir)/cppdefault.c $(OUTPUT_OPTION)
3079
3080# Note for the stamp targets, we run the program `true' instead of
3081# having an empty command (nothing following the semicolon).
3082
3083proto: config.status protoize$(exeext) unprotoize$(exeext) SYSCALLS.c.X
3084
3085PROTO_OBJS = intl.o version.o cppdefault.o errors.o
3086
3087protoize$(exeext): protoize.o $(PROTO_OBJS) $(LIBDEPS)
3088	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ protoize.o $(PROTO_OBJS) $(LIBS)
3089
3090unprotoize$(exeext): unprotoize.o $(PROTO_OBJS) $(LIBDEPS)
3091	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ unprotoize.o $(PROTO_OBJS) $(LIBS)
3092
3093protoize.o: protoize.c $(srcdir)/../include/getopt.h $(CONFIG_H) $(SYSTEM_H) \
3094   coretypes.h $(TM_H) Makefile version.h cppdefault.h intl.h
3095	(SHLIB_LINK='$(SHLIB_LINK)' \
3096	SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \
3097	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
3098	  $(DRIVER_DEFINES) \
3099	  $(srcdir)/protoize.c $(OUTPUT_OPTION))
3100
3101unprotoize.o: protoize.c $(srcdir)/../include/getopt.h $(CONFIG_H) \
3102    $(SYSTEM_H) coretypes.h $(TM_H) Makefile version.h cppdefault.h intl.h
3103	(SHLIB_LINK='$(SHLIB_LINK)' \
3104	SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \
3105	$(CC) -c -DUNPROTOIZE $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
3106	  $(DRIVER_DEFINES) \
3107	  $(srcdir)/protoize.c $(OUTPUT_OPTION))
3108
3109# This info describes the target machine, so compile with GCC just built.
3110SYSCALLS.c.X: $(srcdir)/sys-types.h $(srcdir)/sys-protos.h $(GCC_PASSES) \
3111   stmp-int-hdrs
3112	-rm -f SYSCALLS.c tmp-SYSCALLS.s
3113	sed -e s/TARGET_GETGROUPS_T/$(TARGET_GETGROUPS_T)/ \
3114	  $(srcdir)/sys-types.h $(srcdir)/sys-protos.h > SYSCALLS.c
3115	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) \
3116	  -aux-info $@ -S -o tmp-SYSCALLS.s SYSCALLS.c
3117	-rm -f SYSCALLS.c tmp-SYSCALLS.s
3118
3119
3120test-protoize-simple: ./protoize ./unprotoize $(GCC_PASSES)
3121	-rm -f tmp-proto.[cso]
3122	cp $(srcdir)/protoize.c tmp-proto.c
3123	chmod u+w tmp-proto.c
3124	./protoize -N -B ./ -x getopt.h -c "-B./ -Wall -Wwrite-strings \
3125	  $(GCC_CFLAGS) $(INCLUDES) \
3126	  -DGCC_INCLUDE_DIR=0 \
3127	  -DGPLUSPLUS_INCLUDE_DIR=0 \
3128	  -DCROSS_INCLUDE_DIR=0 \
3129	  -DTOOL_INCLUDE_DIR=0 \
3130	  -DSTANDARD_EXEC_PREFIX=0 \
3131	  -DDEFAULT_TARGET_MACHINE=0 \
3132	  -DDEFAULT_TARGET_VERSION=0" tmp-proto.c
3133	@echo '**********' Expect 400 lines of differences.
3134	-diff $(srcdir)/protoize.c tmp-proto.c > tmp-proto.diff
3135	-wc -l tmp-proto.diff
3136	./unprotoize -N -x getopt.h -c "-B./ -Wall -Wwrite-strings \
3137	  $(GCC_CFLAGS) $(INCLUDES) \
3138	  -DGCC_INCLUDE_DIR=0 \
3139	  -DGPLUSPLUS_INCLUDE_DIR=0 \
3140	  -DCROSS_INCLUDE_DIR=0 \
3141	  -DTOOL_INCLUDE_DIR=0 \
3142	  -DSTANDARD_EXEC_PREFIX=0 \
3143	  -DDEFAULT_TARGET_MACHINE=0 \
3144	  -DDEFAULT_TARGET_VERSION=0" tmp-proto.c
3145	@echo Expect zero differences.
3146	diff $(srcdir)/protoize.c tmp-proto.c | cat
3147	-rm -f tmp-proto.[cs] tmp-proto$(objext)
3148
3149# gcov-iov.c is run on the build machine to generate gcov-iov.h from version.c
3150build/gcov-iov.o: gcov-iov.c $(BCONFIG_H) coretypes.h $(GTM_H) \
3151  $(SYSTEM_H) coretypes.h $(TM_H)
3152
3153build/gcov-iov$(build_exeext): build/gcov-iov.o
3154	$(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) build/gcov-iov.o -o $@
3155
3156gcov-iov.h: s-iov
3157s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
3158	build/gcov-iov$(build_exeext) '$(BASEVER_c)' '$(DEVPHASE_c)' \
3159	    > tmp-gcov-iov.h
3160	$(SHELL) $(srcdir)/../move-if-change tmp-gcov-iov.h gcov-iov.h
3161	$(STAMP) s-iov
3162
3163gcov.o: gcov.c gcov-io.c $(GCOV_IO_H) intl.h $(SYSTEM_H) coretypes.h $(TM_H) \
3164   $(CONFIG_H) version.h
3165gcov-dump.o: gcov-dump.c gcov-io.c $(GCOV_IO_H) $(SYSTEM_H) coretypes.h \
3166   $(TM_H) $(CONFIG_H)
3167
3168GCOV_OBJS = gcov.o intl.o version.o errors.o
3169gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
3170	$(CC) $(ALL_CFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
3171GCOV_DUMP_OBJS = gcov-dump.o version.o errors.o
3172gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS)
3173	$(CC) $(ALL_CFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) $(LIBS) -o $@
3174#
3175# Build the include directory.  The stamp files are stmp-* rather than
3176# s-* so that mostlyclean does not force the include directory to
3177# be rebuilt.
3178
3179# Build the include directory
3180stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) xlimits.h $(UNWIND_H)
3181# Copy in the headers provided with gcc.
3182# The sed command gets just the last file name component;
3183# this is necessary because VPATH could add a dirname.
3184# Using basename would be simpler, but some systems don't have it.
3185# The touch command is here to workaround an AIX/Linux NFS bug.
3186	-if [ -d include ] ; then true; else mkdir include; chmod a+rx include; fi
3187	for file in .. $(USER_H); do \
3188	  if [ X$$file != X.. ]; then \
3189	    realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
3190	    $(STAMP) include/$$realfile; \
3191	    rm -f include/$$realfile; \
3192	    cp $$file include; \
3193	    chmod a+r include/$$realfile; \
3194	  fi; \
3195	done
3196	rm -f include/limits.h
3197	cp xlimits.h include/limits.h
3198	rm -f include/unwind.h
3199	cp $(UNWIND_H) include/unwind.h
3200	chmod a+r include/limits.h
3201# Install the README
3202	rm -f include/README
3203	cp $(srcdir)/../fixincludes/README-fixinc include/README
3204	chmod a+r include/README
3205	$(STAMP) $@
3206
3207.PHONY: install-gcc-tooldir
3208install-gcc-tooldir:
3209	$(mkinstalldirs) $(DESTDIR)$(gcc_tooldir)
3210
3211macro_list: s-macro_list; @true
3212s-macro_list : $(GCC_PASSES) 
3213	echo | $(GCC_FOR_TARGET) -E -dM - | \
3214	  sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \
3215		 -e 's/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \
3216	  sort -u > tmp-macro_list
3217	$(SHELL) $(srcdir)/../move-if-change tmp-macro_list macro_list
3218	$(STAMP) s-macro_list
3219
3220# The line below is supposed to avoid accidentally matching the
3221# built-in suffix rule `.o:' to build fixincl out of fixincl.o.  You'd
3222# expect fixincl to be newer than fixincl.o, such that this situation
3223# would never come up.  As it turns out, if you use ccache with
3224# CCACHE_HARDLINK enabled, the compiler doesn't embed the current
3225# working directory in object files (-g absent, or -fno-working-dir
3226# present), and build and host are the same, fixincl for the host will
3227# build after fixincl for the build machine, getting a cache hit,
3228# thereby updating the timestamp of fixincl.o in the host tree.
3229# Because of CCACHE_HARDLINK, this will also update the timestamp in
3230# the build tree, and so fixincl in the build tree will appear to be
3231# out of date.  Yuck.
3232../$(build_subdir)/fixincludes/fixincl: ; @ :
3233
3234# Build fixed copies of system files.
3235# Abort if no system headers available, unless building a crosscompiler.
3236# FIXME: abort unless building --without-headers would be more accurate and less ugly
3237stmp-fixinc: gsyslimits.h macro_list \
3238  $(build_objdir)/fixincludes/fixincl \
3239  $(build_objdir)/fixincludes/fixinc.sh
3240	@if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
3241	  echo The directory that should contain system headers does not exist: >&2 ; \
3242	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
3243	  tooldir_sysinc=`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \
3244	  if test "x${SYSTEM_HEADER_DIR}" = "x$${tooldir_sysinc}"; \
3245	  then sleep 1; else exit 1; fi; \
3246	fi
3247	rm -rf include; mkdir include
3248	-chmod a+rx include
3249	if [ -d ../prev-gcc ]; then \
3250	  cd ../prev-gcc && \
3251	  $(MAKE) real-$(INSTALL_HEADERS_DIR) DESTDIR=`pwd`/../gcc/ \
3252	    libsubdir=. ; \
3253	else \
3254	  (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \
3255	    SHELL='$(SHELL)'; MACRO_LIST=`${PWD_COMMAND}`/macro_list ; \
3256	    export TARGET_MACHINE srcdir SHELL MACRO_LIST && \
3257	    cd $(build_objdir)/fixincludes && \
3258	    $(SHELL) ./fixinc.sh ../../gcc/include \
3259	      $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \
3260	  rm -f include/syslimits.h; \
3261	  if [ -f include/limits.h ]; then \
3262	    mv include/limits.h include/syslimits.h; \
3263	  else \
3264	    cp $(srcdir)/gsyslimits.h include/syslimits.h; \
3265	  fi; \
3266	fi
3267	chmod a+r include/syslimits.h
3268	$(STAMP) stmp-fixinc
3269
3270# Files related to the fixproto script.
3271# gen-protos and fix-header are compiled with CC_FOR_BUILD, but they are only
3272# used in native and host-x-target builds, so it's safe to link them with
3273# libiberty.a.
3274
3275deduced.h: $(GCC_PASSES) $(srcdir)/scan-types.sh stmp-int-hdrs
3276	if [ -d "$(SYSTEM_HEADER_DIR)" ]; \
3277	then \
3278	  CC="$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -I. -I$(srcdir) -isystem include -isystem ${SYSTEM_HEADER_DIR}"; \
3279	  export CC; \
3280	  $(SHELL) $(srcdir)/scan-types.sh "$(srcdir)" >tmp-deduced.h; \
3281	  mv tmp-deduced.h deduced.h; \
3282	else \
3283	  $(STAMP) deduced.h; \
3284	fi
3285
3286GEN_PROTOS_OBJS = build/gen-protos.o build/scan.o $(BUILD_ERRORS)
3287build/gen-protos$(build_exeext): $(GEN_PROTOS_OBJS)
3288	${CC_FOR_BUILD} $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o $@ \
3289	  $(GEN_PROTOS_OBJS) $(BUILD_LIBS)
3290
3291build/gen-protos.o: gen-protos.c scan.h $(BCONFIG_H) $(SYSTEM_H) coretypes.h \
3292  $(GTM_H) errors.h
3293
3294build/scan.o: scan.c scan.h $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H)
3295
3296xsys-protos.h: $(GCC_PASSES) $(srcdir)/sys-protos.h deduced.h \
3297  build/gen-protos$(build_exeext) Makefile
3298	sed -e s/TARGET_GETGROUPS_T/$(TARGET_GETGROUPS_T)/ \
3299	  deduced.h $(srcdir)/sys-protos.h > tmp-fixtmp.c
3300	mv tmp-fixtmp.c fixtmp.c
3301	$(GCC_FOR_TARGET) fixtmp.c -w -U__SIZE_TYPE__ -U__PTRDIFF_TYPE__ -U__WCHAR_TYPE__ -E \
3302	  | sed -e 's/	/ /g' -e 's/ *(/ (/g' -e 's/ [ ]*/ /g' -e 's/( )/()/' \
3303	  | $(RUN_GEN) build/gen-protos >xsys-protos.hT
3304	mv xsys-protos.hT xsys-protos.h
3305	rm -rf fixtmp.c
3306
3307# This is nominally a 'build' program, but it's run only when host==build,
3308# so we can (indeed, must) use $(LIBDEPS) and $(LIBS).
3309build/fix-header$(build_exeext): build/fix-header.o build/scan-decls.o \
3310  build/scan.o xsys-protos.h c-incpath.o cppdefault.o prefix.o \
3311  $(BUILD_ERRORS) $(LIBDEPS)
3312	$(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o $@ \
3313	 build/fix-header.o c-incpath.o cppdefault.o build/scan-decls.o prefix.o \
3314	 build/scan.o $(BUILD_ERRORS) $(LIBS)
3315
3316build/fix-header.o: fix-header.c $(OBSTACK_H) scan.h errors.h \
3317	xsys-protos.h $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H) $(CPPLIB_H)
3318
3319build/scan-decls.o: scan-decls.c scan.h $(CPPLIB_H) $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H)
3320
3321# stmp-fixproto depends on this, not on fix-header directly.
3322# The idea is to make sure fix-header gets built,
3323# but not rerun fixproto after each stage
3324# just because fix-header's mtime has changed.
3325fixhdr.ready: build/fix-header$(build_exeext)
3326	-if [ -f fixhdr.ready ] ; then \
3327		true; \
3328	else \
3329		$(STAMP) fixhdr.ready; \
3330	fi
3331
3332# stmp-int-hdrs is to make sure fixincludes has already finished.
3333# The if statement is so that we don't run fixproto a second time
3334# if it has already been run on the files in `include'.
3335stmp-fixproto: fixhdr.ready fixproto stmp-int-hdrs
3336	if [ -f include/fixed ] ; then true; \
3337	else \
3338	  : This line works around a 'make' bug in BSDI 1.1.; \
3339	  FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"; export FIXPROTO_DEFINES; \
3340	  FIX_HEADER="build/fix-header$(build_exeext)"; export FIX_HEADER; \
3341	  mkinstalldirs="$(mkinstalldirs)"; \
3342	    export mkinstalldirs; \
3343	  if [ -d "$(SYSTEM_HEADER_DIR)" ]; then \
3344	    $(SHELL) ${srcdir}/fixproto include include $(SYSTEM_HEADER_DIR); \
3345	    if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \
3346	  else true; fi; \
3347	  $(STAMP) include/fixed; \
3348	fi
3349	$(STAMP) stmp-fixproto
3350
3351# We can't run fixproto (it's being built for a different host), but we still
3352# need to install it so that the user can run it when the compiler is
3353# installed.
3354stmp-install-fixproto: fixproto
3355	$(STAMP) $@
3356#
3357# Remake the info files.
3358
3359doc: $(BUILD_INFO) $(GENERATED_MANPAGES) gccbug
3360
3361INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
3362            doc/gccinstall.info doc/cppinternals.info
3363
3364info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo
3365
3366srcinfo: $(INFOFILES)
3367	-cp -p $^ $(srcdir)/doc
3368
3369TEXI_CPP_FILES = cpp.texi fdl.texi cppenv.texi cppopts.texi		\
3370	 gcc-common.texi gcc-vers.texi
3371
3372TEXI_GCC_FILES = gcc.texi gcc-common.texi gcc-vers.texi frontends.texi	\
3373	 standards.texi invoke.texi extend.texi md.texi objc.texi	\
3374	 gcov.texi trouble.texi bugreport.texi service.texi		\
3375	 contribute.texi compat.texi funding.texi gnu.texi gpl.texi	\
3376	 fdl.texi contrib.texi cppenv.texi cppopts.texi			\
3377	 implement-c.texi
3378
3379TEXI_GCCINT_FILES = gccint.texi gcc-common.texi gcc-vers.texi		\
3380	 contribute.texi makefile.texi configterms.texi options.texi	\
3381	 portability.texi interface.texi passes.texi c-tree.texi	\
3382	 rtl.texi md.texi tm.texi hostconfig.texi fragments.texi	\
3383	 configfiles.texi collect2.texi headerdirs.texi funding.texi	\
3384	 gnu.texi gpl.texi fdl.texi contrib.texi languages.texi		\
3385	 sourcebuild.texi gty.texi libgcc.texi cfg.texi tree-ssa.texi	\
3386	 loop.texi
3387
3388TEXI_GCCINSTALL_FILES = install.texi install-old.texi fdl.texi		\
3389	 gcc-common.texi gcc-vers.texi
3390
3391TEXI_CPPINT_FILES = cppinternals.texi gcc-common.texi gcc-vers.texi
3392
3393# gcc-vers.texi is generated from the version files.
3394gcc-vers.texi: $(BASEVER) $(DEVPHASE)
3395	(echo "@set version-GCC $(BASEVER_c)"; \
3396	 if [ "$(DEVPHASE_c)" = "experimental" ]; \
3397	 then echo "@set DEVELOPMENT"; \
3398	 else echo "@clear DEVELOPMENT"; \
3399	 fi) > $@T
3400	echo "@set srcdir $(srcdir)" >> $@T
3401	mv -f $@T $@
3402
3403
3404# The *.1, *.7, *.info, *.dvi, and *.pdf files are being generated from implicit
3405# patterns.  To use them, put each of the specific targets with its
3406# specific dependencies but no build commands.
3407
3408doc/cpp.info: $(TEXI_CPP_FILES)
3409doc/gcc.info: $(TEXI_GCC_FILES)
3410doc/gccint.info: $(TEXI_GCCINT_FILES)
3411doc/cppinternals.info: $(TEXI_CPPINT_FILES)
3412
3413doc/%.info: %.texi
3414	if [ x$(BUILD_INFO) = xinfo ]; then \
3415		$(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
3416			-I $(gcc_docdir)/include -o $@ $<; \
3417	fi
3418
3419# Duplicate entry to handle renaming of gccinstall.info
3420doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
3421	if [ x$(BUILD_INFO) = xinfo ]; then \
3422		$(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
3423			-I $(gcc_docdir)/include -o $@ $<; \
3424	fi
3425
3426doc/cpp.dvi: $(TEXI_CPP_FILES)
3427doc/gcc.dvi: $(TEXI_GCC_FILES)
3428doc/gccint.dvi: $(TEXI_GCCINT_FILES)
3429doc/cppinternals.dvi: $(TEXI_CPPINT_FILES)
3430
3431doc/cpp.pdf: $(TEXI_CPP_FILES)
3432doc/gcc.pdf: $(TEXI_GCC_FILES)
3433doc/gccint.pdf: $(TEXI_GCCINT_FILES)
3434doc/cppinternals.pdf: $(TEXI_CPPINT_FILES)
3435
3436$(build_htmldir)/cpp/index.html: $(TEXI_CPP_FILES)
3437$(build_htmldir)/gcc/index.html: $(TEXI_GCC_FILES)
3438$(build_htmldir)/gccint/index.html: $(TEXI_GCCINT_FILES)
3439$(build_htmldir)/cppinternals/index.html: $(TEXI_CPPINT_FILES)
3440
3441dvi:: doc/gcc.dvi doc/gccint.dvi doc/gccinstall.dvi doc/cpp.dvi \
3442      doc/cppinternals.dvi lang.dvi
3443
3444doc/%.dvi: %.texi
3445	$(TEXI2DVI) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
3446
3447# Duplicate entry to handle renaming of gccinstall.dvi
3448doc/gccinstall.dvi: $(TEXI_GCCINSTALL_FILES)
3449	$(TEXI2DVI) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
3450
3451pdf:: doc/gcc.pdf doc/gccint.pdf doc/gccinstall.pdf doc/cpp.pdf \
3452      doc/cppinternals.pdf lang.pdf
3453
3454doc/%.pdf: %.texi
3455	$(TEXI2PDF) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
3456
3457# Duplicate entry to handle renaming of gccinstall.pdf
3458doc/gccinstall.pdf: $(TEXI_GCCINSTALL_FILES)
3459	$(TEXI2PDF) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
3460
3461# List the directories or single hmtl files which are installed by
3462# install-html. The lang.html file triggers language fragments to build
3463# html documentation. Installing language fragment documentation is not
3464# yet supported.
3465HTMLS_INSTALL=$(build_htmldir)/cpp $(build_htmldir)/gcc \
3466       $(build_htmldir)/gccinstall $(build_htmldir)/gccint \
3467       $(build_htmldir)/cppinternals
3468
3469# List the html file targets.
3470HTMLS_BUILD=$(build_htmldir)/cpp/index.html $(build_htmldir)/gcc/index.html \
3471       $(build_htmldir)/gccinstall/index.html $(build_htmldir)/gccint/index.html \
3472       $(build_htmldir)/cppinternals/index.html lang.html
3473
3474html:: $(HTMLS_BUILD)
3475
3476$(build_htmldir)/%/index.html: %.texi
3477	$(mkinstalldirs) $(@D)
3478	rm -f $(@D)/*
3479	$(TEXI2HTML) -I $(abs_docdir) -I $(abs_docdir)/include -o $(@D) $<
3480
3481# Duplicate entry to handle renaming of gccinstall
3482$(build_htmldir)/gccinstall/index.html: $(TEXI_GCCINSTALL_FILES)
3483	$(mkinstalldirs) $(@D)
3484	echo rm -f $(@D)/*
3485	$(TEXI2HTML) -I $(abs_docdir) -I $(abs_docdir)/include -o $(@D) $<
3486
3487MANFILES = doc/gcov.1 doc/cpp.1 doc/gcc.1 doc/gfdl.7 doc/gpl.7 doc/fsf-funding.7
3488
3489generated-manpages: man
3490
3491man: $(MANFILES) lang.man @GENINSRC@ srcman lang.srcman
3492
3493srcman: $(MANFILES)
3494	-cp -p $^ $(srcdir)/doc
3495
3496doc/%.1: %.pod
3497	$(STAMP) $@
3498	-($(POD2MAN) --section=1 $< > $(@).T$$$$ && \
3499		mv -f $(@).T$$$$ $@) || \
3500		(rm -f $(@).T$$$$ && exit 1)
3501
3502doc/%.7: %.pod
3503	$(STAMP) $@
3504	-($(POD2MAN) --section=7 $< > $(@).T$$$$ && \
3505		mv -f $(@).T$$$$ $@) || \
3506		(rm -f $(@).T$$$$ && exit 1)
3507
3508%.pod: %.texi
3509	$(STAMP) $@
3510	-$(TEXI2POD) $< > $@
3511
3512.INTERMEDIATE: cpp.pod gcc.pod gfdl.pod fsf-funding.pod
3513cpp.pod: cpp.texi cppenv.texi cppopts.texi
3514
3515# These next rules exist because the output name is not the same as
3516# the input name, so our implicit %.pod rule will not work.
3517
3518gcc.pod: invoke.texi cppenv.texi cppopts.texi
3519	$(STAMP) $@
3520	-$(TEXI2POD) $< > $@
3521gfdl.pod: fdl.texi
3522	$(STAMP) $@
3523	-$(TEXI2POD) $< > $@
3524fsf-funding.pod: funding.texi
3525	$(STAMP) $@
3526	-$(TEXI2POD) $< > $@
3527
3528#
3529# clean-target removes all files made by compilation.
3530# This can be added to over time.
3531
3532clean-target: clean-target-libgcc
3533
3534clean-target-libgcc:
3535	test ! -d libgcc || \
3536	(cd libgcc && find . -type d -print) | \
3537	while read d; do rm -f $$d/libgcc.a || : ; done
3538	test ! -d libgcc || rm -r libgcc
3539	test ! -f stmp-dirs || rm stmp-dirs
3540
3541# Deletion of files made during compilation.
3542# There are four levels of this:
3543#   `mostlyclean', `clean', `distclean' and `maintainer-clean'.
3544# `mostlyclean' is useful while working on a particular type of machine.
3545# It deletes most, but not all, of the files made by compilation.
3546# It does not delete libgcc.a or its parts, so it won't have to be recompiled.
3547# `clean' deletes everything made by running `make all'.
3548# `distclean' also deletes the files made by config.
3549# `maintainer-clean' also deletes everything that could be regenerated
3550# automatically, except for `configure'.
3551# We remove as much from the language subdirectories as we can
3552# (less duplicated code).
3553
3554mostlyclean: lang.mostlyclean
3555	-rm -f $(STAGECOPYSTUFF) $(STAGEMOVESTUFF)
3556	-rm -f *$(coverageexts)
3557	-rm -rf libgcc
3558# Delete build programs
3559	-rm -f build/*
3560	-rm -f mddeps.mk
3561# Delete the temp files made in the course of building libgcc.a.
3562	-rm -f xlimits.h
3563# Delete other built files.
3564	-rm -f xsys-protos.hT
3565	-rm -f specs.h gencheck.h options.c options.h
3566# Delete the stamp and temporary files.
3567	-rm -f s-* tmp-* stamp-* stmp-*
3568	-rm -f */stamp-* */tmp-*
3569# Delete debugging dump files.
3570	-rm -f *.[0-9][0-9].* */*.[0-9][0-9].*
3571# Delete some files made during installation.
3572	-rm -f specs $(SPECS) SYSCALLS.c.X SYSCALLS.c
3573	-rm -f collect collect2 mips-tfile mips-tdump
3574# Delete files generated for fixproto
3575	-rm -rf $(build_exeext) xsys-protos.h deduced.h tmp-deduced.h \
3576	  gen-protos$(build_exeext) fixproto.list fixtmp.* fixhdr.ready
3577# Delete unwanted output files from TeX.
3578	-rm -f *.toc *.log *.vr *.fn *.cp *.tp *.ky *.pg
3579	-rm -f */*.toc */*.log */*.vr */*.fn */*.cp */*.tp */*.ky */*.pg
3580# Delete sorted indices we don't actually use.
3581	-rm -f gcc.vrs gcc.kys gcc.tps gcc.pgs gcc.fns
3582# Delete core dumps.
3583	-rm -f core */core
3584# Delete file generated for gengtype.c
3585	-rm -f gtyp-gen.h
3586# Delete files generated by gengtype.c
3587	-rm -f gtype-*
3588	-rm -f gt-*
3589# Delete genchecksum outputs
3590	-rm -f *-checksum.c
3591
3592# Delete all files made by compilation
3593# that don't exist in the distribution.
3594clean: mostlyclean lang.clean
3595	-rm -f libgcc.a libgcc_eh.a libgcov.a
3596	-rm -f libgcc_s*
3597	-rm -f libunwind*
3598	-rm -f config.h tconfig.h bconfig.h tm_p.h tm.h
3599	-rm -f options.c options.h optionlist
3600	-rm -f cs-*
3601	-rm -rf libgcc
3602	-rm -f doc/*.dvi
3603	-rm -f doc/*.pdf
3604# Delete the include directory.
3605	-rm -rf include
3606# Delete files used by the "multilib" facility (including libgcc subdirs).
3607	-rm -f multilib.h tmpmultilib*
3608	-if [ "x$(MULTILIB_DIRNAMES)" != x ] ; then \
3609	  rm -rf $(MULTILIB_DIRNAMES); \
3610	else if [ "x$(MULTILIB_OPTIONS)" != x ] ; then \
3611	  rm -rf `echo $(MULTILIB_OPTIONS) | sed -e 's/\// /g'`; \
3612	fi ; fi
3613	-rm -fr stage1 stage2 stage3 stage4 stageprofile stagefeedback
3614# Delete stamps of bootstrap stages
3615	-rm -f stage?_*
3616	-rm -f clean?_*
3617	-rm -f stage_last
3618
3619# Delete all files that users would normally create
3620# while building and installing GCC.
3621distclean: clean lang.distclean
3622	-rm -f auto-host.h auto-build.h
3623	-rm -f cstamp-h
3624	-rm -f config.status config.run config.cache config.bak
3625	-rm -f Make-lang Make-hooks Make-host Make-target
3626	-rm -f Makefile *.oaux
3627	-rm -f gthr-default.h
3628	-rm -f */stage1 */stage2 */stage3 */stage4 */include */stageprofile */stagefeedback
3629	-rm -f TAGS */TAGS
3630	-rm -f *.asm
3631	-rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak
3632	-rm -f testsuite/*.log testsuite/*.sum
3633	-cd testsuite && rm -f x *.x *.x? *.exe *.rpo *.o *.s *.S *.c
3634	-cd testsuite && rm -f *.out *.gcov *$(coverageexts)
3635	-rm -rf ${QMTEST_DIR} stamp-qmtest
3636	-rm -f cxxmain.c
3637	-rm -f mklibgcc gccbug .gdbinit configargs.h
3638	-rm -f gcov.pod
3639# Delete po/*.gmo only if we are not building in the source directory.
3640	-if [ ! -f po/exgettext ]; then rm -f po/*.gmo; fi
3641	-rmdir ada cp f java objc intl po testsuite 2>/dev/null
3642
3643# Get rid of every file that's generated from some other file, except for `configure'.
3644# Most of these files ARE PRESENT in the GCC distribution.
3645maintainer-clean:
3646	@echo 'This command is intended for maintainers to use; it'
3647	@echo 'deletes files that may need special tools to rebuild.'
3648	$(MAKE) lang.maintainer-clean distclean
3649	-rm -f cpp.??s cpp.*aux
3650	-rm -f gcc.??s gcc.*aux
3651	-rm -f $(gcc_docdir)/*.info $(gcc_docdir)/*.1 $(gcc_docdir)/*.7 $(gcc_docdir)/*.dvi $(gcc_docdir)/*.pdf
3652#
3653# Entry points `install' and `uninstall'.
3654# Also use `install-collect2' to install collect2 when the config files don't.
3655
3656# Copy the compiler files into directories where they will be run.
3657# Install the driver last so that the window when things are
3658# broken is small.
3659install: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \
3660    install-cpp install-man install-info install-@POSUB@ \
3661    install-driver
3662
3663# Handle cpp installation.
3664install-cpp: installdirs cpp$(exeext)
3665	-rm -f $(DESTDIR)$(bindir)/$(CPP_INSTALL_NAME)$(exeext)
3666	-$(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(DESTDIR)$(bindir)/$(CPP_INSTALL_NAME)$(exeext)
3667	-if [ x$(cpp_install_dir) != x ]; then \
3668	  rm -f $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
3669	  $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
3670	else true; fi
3671
3672# Create the installation directories.
3673# $(libdir)/gcc/include isn't currently searched by cpp.
3674installdirs:
3675	$(mkinstalldirs) $(DESTDIR)$(libsubdir)
3676	$(mkinstalldirs) $(DESTDIR)$(libexecsubdir)
3677	$(mkinstalldirs) $(DESTDIR)$(bindir)
3678	$(mkinstalldirs) $(DESTDIR)$(includedir)
3679	$(mkinstalldirs) $(DESTDIR)$(infodir)
3680	$(mkinstalldirs) $(DESTDIR)$(slibdir)
3681	$(mkinstalldirs) $(DESTDIR)$(man1dir)
3682	$(mkinstalldirs) $(DESTDIR)$(man7dir)
3683
3684# Install the compiler executables built during cross compilation.
3685install-common: native $(EXTRA_PARTS) lang.install-common installdirs
3686	for file in $(COMPILERS); do \
3687	  if [ -f $$file ] ; then \
3688	    rm -f $(DESTDIR)$(libexecsubdir)/$$file; \
3689	    $(INSTALL_PROGRAM) $$file $(DESTDIR)$(libexecsubdir)/$$file; \
3690	  else true; \
3691	  fi; \
3692	done
3693	for file in $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(COLLECT2) ..; do \
3694	  if [ x"$$file" != x.. ]; then \
3695	    rm -f $(DESTDIR)$(libexecsubdir)/$$file; \
3696	    $(INSTALL_PROGRAM) $$file $(DESTDIR)$(libexecsubdir)/$$file; \
3697	  else true; fi; \
3698	done
3699	for file in $(EXTRA_PARTS) ..; do \
3700	  if [ x"$$file" != x.. ]; then \
3701	    rm -f $(DESTDIR)$(libsubdir)/$$file; \
3702	    $(INSTALL_DATA) $$file $(DESTDIR)$(libsubdir)/$$file; \
3703	    chmod a-x $(DESTDIR)$(libsubdir)/$$file; \
3704	  else true; fi; \
3705	done
3706# We no longer install the specs file because its presence makes the
3707# driver slower, and because people who need it can recreate it by
3708# using -dumpspecs.  We remove any old version because it would
3709# otherwise override the specs built into the driver.
3710	rm -f $(DESTDIR)$(libsubdir)/specs
3711# Install protoize if it was compiled.
3712	-if [ -f protoize$(exeext) ]; then \
3713	  rm -f $(DESTDIR)$(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \
3714	  $(INSTALL_PROGRAM) protoize$(exeext) $(DESTDIR)$(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \
3715	  rm -f $(DESTDIR)$(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \
3716	  $(INSTALL_PROGRAM) unprotoize$(exeext) $(DESTDIR)$(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \
3717	  rm -f $(DESTDIR)$(libsubdir)/SYSCALLS.c.X; \
3718	  $(INSTALL_DATA) SYSCALLS.c.X $(DESTDIR)$(libsubdir)/SYSCALLS.c.X; \
3719	  chmod a-x $(DESTDIR)$(libsubdir)/SYSCALLS.c.X; \
3720	fi
3721# Install gcov if it was compiled.
3722	-if [ -f gcov$(exeext) ]; \
3723	then \
3724	    rm -f $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext); \
3725	    $(INSTALL_PROGRAM) gcov$(exeext) $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext); \
3726	fi
3727	$(INSTALL_SCRIPT) gccbug $(DESTDIR)$(bindir)/$(GCCBUG_INSTALL_NAME)
3728
3729# Install the driver program as $(target_noncanonical)-gcc,
3730# $(target_noncanonical)-gcc-$(version)
3731# and also as either gcc (if native) or $(gcc_tooldir)/bin/gcc.
3732install-driver: installdirs xgcc$(exeext)
3733	-rm -f $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
3734	-$(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
3735	-rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$(version)$(exeext)
3736	-( cd $(DESTDIR)$(bindir) && \
3737	   $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-$(version)$(exeext) )
3738	-if [ -f gcc-cross$(exeext) ] ; then \
3739	  if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \
3740	    rm -f $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \
3741	    $(INSTALL_PROGRAM) gcc-cross$(exeext) $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \
3742	  else true; fi; \
3743	else \
3744	  rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$(exeext); \
3745	  ( cd $(DESTDIR)$(bindir) && \
3746	    $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-tmp$(exeext) && \
3747	    mv -f $(target_noncanonical)-gcc-tmp$(exeext) $(GCC_TARGET_INSTALL_NAME)$(exeext) ); \
3748	fi
3749
3750# Install the info files.
3751# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
3752# to do the install.
3753install-info:: doc installdirs \
3754	$(DESTDIR)$(infodir)/cpp.info \
3755	$(DESTDIR)$(infodir)/gcc.info \
3756	$(DESTDIR)$(infodir)/cppinternals.info \
3757	$(DESTDIR)$(infodir)/gccinstall.info \
3758	$(DESTDIR)$(infodir)/gccint.info \
3759	lang.install-info
3760
3761$(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
3762	rm -f $@
3763	if [ -f $< ]; then \
3764	  for f in $(<)*; do \
3765	    realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
3766	    $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/$$realfile; \
3767	    chmod a-x $(DESTDIR)$(infodir)/$$realfile; \
3768	  done; \
3769	else true; fi
3770	-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
3771	  if [ -f $@ ]; then \
3772	    install-info --dir-file=$(DESTDIR)$(infodir)/dir $@; \
3773	  else true; fi; \
3774	else true; fi;
3775
3776html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
3777 
3778install-html: $(HTMLS_BUILD)
3779	@$(NORMAL_INSTALL)
3780	test -z "$(htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(htmldir)"
3781	@list='$(HTMLS_INSTALL)'; for p in $$list; do \
3782	  if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
3783	  f=$(html__strip_dir) \
3784	  if test -d "$$d$$p"; then \
3785	    echo " $(mkinstalldirs) '$(DESTDIR)$(htmldir)/$$f'"; \
3786	    $(mkinstalldirs) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
3787	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
3788	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
3789	  else \
3790	    echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
3791	    $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
3792	  fi; \
3793	done
3794
3795# Install the man pages.
3796install-man: lang.install-man \
3797	$(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) \
3798	$(DESTDIR)$(man1dir)/$(CPP_INSTALL_NAME)$(man1ext) \
3799	$(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext) \
3800	$(DESTDIR)$(man7dir)/fsf-funding$(man7ext) \
3801	$(DESTDIR)$(man7dir)/gfdl$(man7ext) \
3802	$(DESTDIR)$(man7dir)/gpl$(man7ext)
3803
3804$(DESTDIR)$(man7dir)/%$(man7ext): doc/%.7 installdirs
3805	-rm -f $@
3806	-$(INSTALL_DATA) $< $@
3807	-chmod a-x $@
3808
3809$(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext): doc/gcc.1 installdirs
3810	-rm -f $@
3811	-$(INSTALL_DATA) $< $@
3812	-chmod a-x $@
3813
3814$(DESTDIR)$(man1dir)/$(CPP_INSTALL_NAME)$(man1ext): doc/cpp.1 installdirs
3815	-rm -f $@
3816	-$(INSTALL_DATA) $< $@
3817	-chmod a-x $@
3818
3819$(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext): doc/gcov.1 installdirs
3820	-rm -f $@
3821	-$(INSTALL_DATA) $< $@
3822	-chmod a-x $@
3823
3824# Install the library.
3825install-libgcc: libgcc.mk libgcc.a libgcov.a installdirs
3826	$(MAKE) \
3827	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
3828	  CONFIG_H="$(TCONFIG_H)" \
3829	  MAKEOVERRIDES= \
3830	  mkinstalldirs='$(mkinstalldirs)' \
3831	  -f libgcc.mk install
3832
3833# Install multiple versions of libgcc.a, libgcov.a.
3834install-multilib: stmp-multilib installdirs
3835	$(MAKE) \
3836	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
3837	  CONFIG_H="$(CONFIG_H)" \
3838	  MAKEOVERRIDES= \
3839	  mkinstalldirs='$(mkinstalldirs)' \
3840	  -f libgcc.mk install
3841
3842# Install all the header files built in the include subdirectory.
3843install-headers: $(INSTALL_HEADERS_DIR)
3844# Fix symlinks to absolute paths in the installed include directory to
3845# point to the installed directory, not the build directory.
3846# Don't need to use LN_S here since we really do need ln -s and no substitutes.
3847	-files=`cd $(DESTDIR)$(libsubdir)/include; find . -type l -print 2>/dev/null`; \
3848	if [ $$? -eq 0 ]; then \
3849	  dir=`cd include; ${PWD_COMMAND}`; \
3850	  for i in $$files; do \
3851	    dest=`ls -ld $(DESTDIR)$(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
3852	    if expr "$$dest" : "$$dir.*" > /dev/null; then \
3853	      rm -f $(DESTDIR)$(libsubdir)/include/$$i; \
3854	      ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(DESTDIR)$(libsubdir)/include/$$i; \
3855	    fi; \
3856	  done; \
3857	fi
3858
3859# Create or recreate the gcc private include file directory.
3860install-include-dir: installdirs
3861	-rm -rf $(DESTDIR)$(libsubdir)/include
3862	mkdir $(DESTDIR)$(libsubdir)/include
3863	-chmod a+rx $(DESTDIR)$(libsubdir)/include
3864
3865# Create or recreate the install-tools include file directory.
3866itoolsdir = $(libexecsubdir)/install-tools
3867itoolsdatadir = $(libsubdir)/install-tools
3868install-itoolsdirs: installdirs
3869	$(mkinstalldirs) $(DESTDIR)$(itoolsdatadir)/include
3870	$(mkinstalldirs) $(DESTDIR)$(itoolsdir)
3871
3872# Install the include directory using tar.
3873install-headers-tar: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
3874# We use `pwd`/include instead of just include to problems with CDPATH
3875# Unless a full pathname is provided, some shells would print the new CWD,
3876# found in CDPATH, corrupting the output.  We could just redirect the
3877# output of `cd', but some shells lose on redirection within `()'s
3878	(cd `${PWD_COMMAND}`/include ; \
3879	 tar -cf - .; exit 0) | (cd $(DESTDIR)$(libsubdir)/include; tar xpf - )
3880# /bin/sh on some systems returns the status of the first tar,
3881# and that can lose with GNU tar which always writes a full block.
3882# So use `exit 0' to ignore its exit status.
3883
3884# Install the include directory using cpio.
3885install-headers-cpio: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
3886# See discussion about the use of `pwd` above
3887	cd `${PWD_COMMAND}`/include ; \
3888	find . -print | cpio -pdum $(DESTDIR)$(libsubdir)/include
3889
3890# Install the include directory using cp.
3891install-headers-cp: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
3892	cp -p -r include $(DESTDIR)$(libsubdir)
3893
3894# Targets without dependencies, for use in prev-gcc during bootstrap.
3895real-install-headers-tar:
3896	(cd `${PWD_COMMAND}`/include ; \
3897	 tar -cf - .; exit 0) | (cd $(DESTDIR)$(libsubdir)/include; tar xpf - )
3898
3899real-install-headers-cpio:
3900	cd `${PWD_COMMAND}`/include ; \
3901	find . -print | cpio -pdum $(DESTDIR)$(libsubdir)/include
3902
3903real-install-headers-cp:
3904	cp -p -r include $(DESTDIR)$(libsubdir)
3905
3906# Install supporting files for fixincludes to be run later.
3907install-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-itoolsdirs \
3908  macro_list xlimits.h
3909	for file in $(USER_H); do \
3910	  realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
3911	  $(INSTALL_DATA) $$file \
3912	    $(DESTDIR)$(itoolsdatadir)/include/$$realfile ; \
3913	done
3914	$(INSTALL_DATA) xlimits.h $(DESTDIR)$(itoolsdatadir)/include/limits.h
3915	$(INSTALL_DATA) $(UNWIND_H) $(DESTDIR)$(itoolsdatadir)/include/unwind.h
3916	$(INSTALL_DATA) $(srcdir)/gsyslimits.h \
3917	  $(DESTDIR)$(itoolsdatadir)/gsyslimits.h
3918	$(INSTALL_DATA) macro_list $(DESTDIR)$(itoolsdatadir)/macro_list
3919	if [ x$(STMP_FIXPROTO) != x ] ; then \
3920	  $(INSTALL_SCRIPT) $(mkinstalldirs) \
3921		$(DESTDIR)$(itoolsdir)/mkinstalldirs ; \
3922	  $(INSTALL_SCRIPT) $(srcdir)/fixproto $(DESTDIR)$(itoolsdir)/fixproto ; \
3923	  $(INSTALL_PROGRAM) build/fix-header$(build_exeext) \
3924		$(DESTDIR)$(itoolsdir)/fix-header$(build_exeext) ; \
3925	else :; fi
3926	echo 'SYSTEM_HEADER_DIR="'"$(SYSTEM_HEADER_DIR)"'"' \
3927		> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3928	echo 'OTHER_FIXINCLUDES_DIRS="$(OTHER_FIXINCLUDES_DIRS)"' \
3929		>> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3930	echo 'FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"' \
3931		>> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3932	echo 'STMP_FIXPROTO="$(STMP_FIXPROTO)"' \
3933		>> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3934	echo 'STMP_FIXINC="$(STMP_FIXINC)"' \
3935		>> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3936
3937# Use this target to install the program `collect2' under the name `collect2'.
3938install-collect2: collect2 installdirs
3939	$(INSTALL_PROGRAM) collect2$(exeext) $(DESTDIR)$(libexecsubdir)/collect2$(exeext)
3940# Install the driver program as $(libsubdir)/gcc for collect2.
3941	$(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(libexecsubdir)/gcc$(exeext)
3942
3943# Cancel installation by deleting the installed files.
3944uninstall: lang.uninstall
3945	-rm -rf $(DESTDIR)$(libsubdir)
3946	-rm -rf $(DESTDIR)$(libexecsubdir)
3947	-rm -rf $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
3948	-rm -f $(DESTDIR)$(bindir)/$(CPP_INSTALL_NAME)$(exeext)
3949	-if [ x$(cpp_install_dir) != x ]; then \
3950	  rm -f $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
3951	else true; fi
3952	-rm -rf $(DESTDIR)$(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext)
3953	-rm -rf $(DESTDIR)$(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext)
3954	-rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext)
3955	-rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext)
3956	-rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext)
3957	-rm -rf $(DESTDIR)$(man1dir)/protoize$(man1ext)
3958	-rm -rf $(DESTDIR)$(man1dir)/unprotoize$(man1ext)
3959	-rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
3960	-rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info*
3961#
3962# These targets are for the dejagnu testsuites. The file site.exp
3963# contains global variables that all the testsuites will use.
3964
3965target_subdir = @target_subdir@
3966
3967site.exp: ./config.status Makefile
3968	@echo "Making a new config file..."
3969	-@rm -f ./tmp?
3970	@$(STAMP) site.exp
3971	-@mv site.exp site.bak
3972	@echo "## these variables are automatically generated by make ##" > ./tmp0
3973	@echo "# Do not edit here. If you wish to override these values" >> ./tmp0
3974	@echo "# add them to the last section" >> ./tmp0
3975	@echo "set rootme \"`${PWD_COMMAND}`\"" >> ./tmp0
3976	@echo "set srcdir \"`cd ${srcdir}; ${PWD_COMMAND}`\"" >> ./tmp0
3977	@echo "set host_triplet $(host)" >> ./tmp0
3978	@echo "set build_triplet $(build)" >> ./tmp0
3979	@echo "set target_triplet $(target)" >> ./tmp0
3980	@echo "set target_alias $(target_noncanonical)" >> ./tmp0
3981	@echo "set libiconv \"$(LIBICONV)\"" >> ./tmp0
3982# CFLAGS is set even though it's empty to show we reserve the right to set it.
3983	@echo "set CFLAGS \"\"" >> ./tmp0
3984	@echo "set CXXFLAGS \"\"" >> ./tmp0
3985	@echo "set HOSTCC \"$(CC)\"" >> ./tmp0
3986	@echo "set HOSTCFLAGS \"$(CFLAGS)\"" >> ./tmp0
3987	@echo "set TESTING_IN_BUILD_TREE 1" >> ./tmp0
3988	@echo "set HAVE_LIBSTDCXX_V3 1" >> ./tmp0
3989# If newlib has been configured, we need to pass -B to gcc so it can find
3990# newlib's crt0.o if it exists.  This will cause a "path prefix not used"
3991# message if it doesn't, but the testsuite is supposed to ignore the message -
3992# it's too difficult to tell when to and when not to pass -B (not all targets
3993# have crt0's).  We could only add the -B if ../newlib/crt0.o exists, but that
3994# seems like too selective a test.
3995# ??? Another way to solve this might be to rely on linker scripts.  Then
3996# theoretically the -B won't be needed.
3997# We also need to pass -L ../ld so that the linker can find ldscripts.
3998	@if [ -d $(objdir)/../$(target_subdir)/newlib ] \
3999	    && [ "${host}" != "${target}" ]; then \
4000	  echo "set newlib_cflags \"-I$(objdir)/../$(target_subdir)/newlib/targ-include -I\$$srcdir/../newlib/libc/include\"" >> ./tmp0; \
4001	  echo "set newlib_ldflags \"-B$(objdir)/../$(target_subdir)/newlib/\"" >> ./tmp0; \
4002	  echo "append CFLAGS \" \$$newlib_cflags\"" >> ./tmp0; \
4003	  echo "append CXXFLAGS \" \$$newlib_cflags\"" >> ./tmp0; \
4004	  echo "append LDFLAGS \" \$$newlib_ldflags\"" >> ./tmp0; \
4005	else true; \
4006	fi
4007	@if [ -d $(objdir)/../ld ] ; then \
4008	  echo "append LDFLAGS \" -L$(objdir)/../ld\"" >> ./tmp0; \
4009	else true; \
4010	fi
4011	echo "set tmpdir $(objdir)/testsuite" >> ./tmp0
4012	@echo "set srcdir \"\$${srcdir}/testsuite\"" >> ./tmp0
4013	@if [ "X$(ALT_CC_UNDER_TEST)" != "X" ] ; then \
4014	  echo "set ALT_CC_UNDER_TEST \"$(ALT_CC_UNDER_TEST)\"" >> ./tmp0; \
4015	else true; \
4016	fi
4017	@if [ "X$(ALT_CXX_UNDER_TEST)" != "X" ] ; then \
4018	  echo "set ALT_CXX_UNDER_TEST \"$(ALT_CXX_UNDER_TEST)\"" >> ./tmp0; \
4019	else true; \
4020	fi
4021	@if [ "X$(COMPAT_OPTIONS)" != "X" ] ; then \
4022	  echo "set COMPAT_OPTIONS \"$(COMPAT_OPTIONS)\"" >> ./tmp0; \
4023	else true; \
4024	fi
4025	@echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0
4026	@cat ./tmp0 > site.exp
4027	@cat site.bak | sed \
4028		-e '1,/^## All variables above are.*##/ d' >> site.exp
4029	-@rm -f ./tmp?
4030
4031CHECK_TARGETS = check-gcc @check_languages@
4032
4033check: $(CHECK_TARGETS)
4034
4035# The idea is to parallelize testing of multilibs, for example:
4036#   make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
4037# will run 3 concurrent sessions of check-gcc, eventually testing
4038# all 10 combinations.  GNU make is required, as is a shell that expands
4039# alternations within braces.
4040lang_checks_parallel = $(lang_checks:=//%)
4041$(lang_checks_parallel): site.exp
4042	target=`echo "$@" | sed 's,//.*,,'`; \
4043	variant=`echo "$@" | sed 's,^[^/]*//,,'`; \
4044	vardots=`echo "$$variant" | sed 's,/,.,g'`; \
4045	$(MAKE) TESTSUITEDIR="testsuite.$$vardots" \
4046	  RUNTESTFLAGS="--target_board=$$variant $(RUNTESTFLAGS)" \
4047	  "$$target"
4048
4049TESTSUITEDIR = testsuite
4050
4051$(TESTSUITEDIR)/site.exp: site.exp
4052	-test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
4053	-rm -f $@
4054	sed '/set tmpdir/ s|testsuite|$(TESTSUITEDIR)|' < site.exp > $@
4055
4056$(lang_checks): check-% : site.exp
4057	-test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
4058	test -d $(TESTSUITEDIR)/$* || mkdir $(TESTSUITEDIR)/$*
4059	-(rootme=`${PWD_COMMAND}`; export rootme; \
4060	srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
4061	cd $(TESTSUITEDIR)/$*; \
4062	rm -f tmp-site.exp; \
4063	sed '/set tmpdir/ s|testsuite|$(TESTSUITEDIR)/$*|' \
4064		< ../../site.exp > tmp-site.exp; \
4065	$(SHELL) $${srcdir}/../move-if-change tmp-site.exp site.exp; \
4066	EXPECT=${EXPECT} ; export EXPECT ; \
4067	if [ -f $${rootme}/../expect/expect ] ; then  \
4068	   TCL_LIBRARY=`cd .. ; cd $${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
4069	    export TCL_LIBRARY ; fi ; \
4070	$(RUNTEST) --tool $* $(RUNTESTFLAGS))
4071
4072check-consistency: testsuite/site.exp
4073	-rootme=`${PWD_COMMAND}`; export rootme; \
4074	srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
4075	cd testsuite; \
4076	EXPECT=${EXPECT} ; export EXPECT ; \
4077	if [ -f $${rootme}/../expect/expect ] ; then  \
4078	   TCL_LIBRARY=`cd .. ; cd $${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
4079	   export TCL_LIBRARY ; fi ; \
4080	$(RUNTEST) --tool consistency $(RUNTESTFLAGS)
4081
4082# QMTest targets
4083
4084# The path to qmtest.
4085QMTEST_PATH=qmtest
4086
4087# The flags to pass to qmtest.
4088QMTESTFLAGS=
4089
4090# The flags to pass to "qmtest run".
4091QMTESTRUNFLAGS=-f none --result-stream dejagnu_stream.DejaGNUStream
4092
4093# The command to use to invoke qmtest.
4094QMTEST=${QMTEST_PATH} ${QMTESTFLAGS}
4095
4096# The tests (or suites) to run.
4097QMTEST_GPP_TESTS=g++
4098
4099# The subdirectory of the OBJDIR that will be used to store the QMTest
4100# test database configuration and that will be used for temporary
4101# scratch space during QMTest's execution.
4102QMTEST_DIR=qmtestsuite
4103
4104# Create the QMTest database configuration.
4105${QMTEST_DIR} stamp-qmtest:
4106	${QMTEST} -D ${QMTEST_DIR} create-tdb \
4107	    -c gcc_database.GCCDatabase \
4108            -a srcdir=`cd ${srcdir}/testsuite && ${PWD_COMMAND}` && \
4109	    $(STAMP) stamp-qmtest
4110
4111# Create the QMTest context file.
4112${QMTEST_DIR}/context: stamp-qmtest
4113	rm -f $@
4114	echo "CompilerTable.languages=c cplusplus" >> $@
4115	echo "CompilerTable.c_kind=GCC" >> $@
4116	echo "CompilerTable.c_path=${objdir}/xgcc" >> $@
4117	echo "CompilerTable.c_options=-B${objdir}/" >> $@
4118	echo "CompilerTable.cplusplus_kind=GCC" >> $@
4119	echo "CompilerTable.cplusplus_path=${objdir}/g++" >> $@
4120	echo "CompilerTable.cplusplus_options=-B${objdir}/" >> $@
4121	echo "DejaGNUTest.target=${target_noncanonical}" >> $@
4122
4123# Run the G++ testsuite using QMTest.
4124qmtest-g++: ${QMTEST_DIR}/context
4125	cd ${QMTEST_DIR} && ${QMTEST} run ${QMTESTRUNFLAGS} -C context \
4126	   -o g++.qmr ${QMTEST_GPP_TESTS}
4127
4128# Use the QMTest GUI.
4129qmtest-gui: ${QMTEST_DIR}/context
4130	cd ${QMTEST_DIR} && ${QMTEST} gui -C context
4131
4132.PHONY: qmtest-g++
4133
4134# Run Paranoia on real.c.
4135
4136paranoia.o: $(srcdir)/../contrib/paranoia.cc $(CONFIG_H) $(SYSTEM_H) \
4137  $(REAL_H) $(TREE_H)
4138	g++ -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
4139
4140paranoia: paranoia.o real.o $(LIBIBERTY)
4141	g++ -o $@ paranoia.o real.o $(LIBIBERTY)
4142
4143# These exist for maintenance purposes.
4144
4145# Update the tags table.
4146TAGS: lang.tags
4147	(cd $(srcdir);					\
4148	incs= ;						\
4149	list='$(SUBDIRS)'; for dir in $$list; do	\
4150	  if test -f $$dir/TAGS; then			\
4151	    incs="$$incs --include $$dir/TAGS.sub";	\
4152	  fi;						\
4153	done;						\
4154	etags -o TAGS.sub *.y *.h *.c; \
4155	etags --include TAGS.sub $$incs)
4156
4157# ------------------------------------------------------
4158# Bootstrap-related targets (not used during 'make all')
4159# ------------------------------------------------------
4160
4161# A list of files to be destroyed during "lean" builds.
4162VOL_FILES=`echo $(BACKEND) $(OBJS) $(C_OBJS) *.c *.h gen*`
4163
4164# Flags to pass to stage2 and later recursive makes.  Note that the
4165# WARN_CFLAGS setting can't be to the expansion of GCC_WARN_CFLAGS in
4166# the context of the stage_x rule.
4167
4168POSTSTAGE1_FLAGS_TO_PASS = \
4169	ADAFLAGS="$(BOOT_ADAFLAGS)" \
4170	CFLAGS="$(BOOT_CFLAGS)" \
4171	LDFLAGS="$(BOOT_LDFLAGS)" \
4172	WARN_CFLAGS="\$$(GCC_WARN_CFLAGS)" \
4173	STRICT_WARN="$(STRICT2_WARN)" \
4174	libdir=$(libdir) \
4175	LANGUAGES="$(LANGUAGES)" \
4176	MAKEINFO="$(MAKEINFO)" \
4177	MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \
4178	MAKEOVERRIDES= \
4179	OUTPUT_OPTION="-o \$$@"
4180
4181STAGE2_FLAGS_TO_PASS = \
4182	CFLAGS="$(BOOT_CFLAGS)" \
4183	WERROR="$(WERROR_FLAGS)" \
4184
4185STAGEPROFILE_FLAGS_TO_PASS = \
4186	CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"
4187
4188# Files never linked into the final executable produces warnings about missing
4189# profile.
4190STAGEFEEDBACK_FLAGS_TO_PASS = \
4191	CFLAGS="$(BOOT_CFLAGS) -fprofile-use -freorder-blocks-and-partition"
4192
4193# Only build the C compiler for stage1, because that is the only one that
4194# we can guarantee will build with the native compiler, and also it is the
4195# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS),
4196# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
4197# overrideable (for a bootstrap build stage1 also builds gcc.info).
4198# The stage1 compiler is always built with checking enabled.
4199stage1_build:
4200	$(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" \
4201		CFLAGS="$(STAGE1_CFLAGS) $(STAGE1_CHECKING_CFLAGS)" \
4202		MAKEINFO="$(MAKEINFO)" MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \
4203		COVERAGE_FLAGS= OBJS-onestep="$(OBJS)"
4204	$(STAMP) stage1_build
4205	echo stage1_build > stage_last
4206
4207stage1_copy: stage1_build
4208	$(MAKE) stage1
4209	$(STAMP) stage1_copy
4210	echo stage2_build > stage_last
4211
4212stage2_build: stage1_copy
4213	$(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/" \
4214		 STAGE_PREFIX=stage1/ \
4215		 $(POSTSTAGE1_FLAGS_TO_PASS) \
4216		 $(STAGE2_FLAGS_TO_PASS)
4217	$(STAMP) stage2_build
4218	echo stage2_build > stage_last
4219
4220stage2_copy: stage2_build
4221	$(MAKE) stage2
4222	$(STAMP) stage2_copy
4223	echo stage3_build > stage_last
4224
4225stageprofile_build: stage1_copy
4226	$(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/" \
4227		 STAGE_PREFIX=stage1/ \
4228		 $(POSTSTAGE1_FLAGS_TO_PASS) \
4229		 $(STAGEPROFILE_FLAGS_TO_PASS)
4230	$(STAMP) stageprofile_build
4231	echo stageprofile_build > stage_last
4232
4233stageprofile_copy: stageprofile_build
4234	$(MAKE) stageprofile
4235	$(STAMP) stageprofile_copy
4236	echo stagefeedback_build > stage_last
4237
4238stage3_build: stage2_copy
4239	$(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/" \
4240		 STAGE_PREFIX=stage2/ \
4241		 $(POSTSTAGE1_FLAGS_TO_PASS) \
4242		 $(STAGE2_FLAGS_TO_PASS)
4243	$(STAMP) stage3_build
4244	echo stage3_build > stage_last
4245
4246stagefeedback_build: stageprofile_copy stage1_copy
4247	$(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/" \
4248		 STAGE_PREFIX=stage1/ \
4249		 $(POSTSTAGE1_FLAGS_TO_PASS) \
4250		 $(STAGEFEEDBACK_FLAGS_TO_PASS)
4251	$(STAMP) stagefeedback_build
4252	echo stagefeedback_build > stage_last
4253
4254stagefeedback_copy: stagefeedback_build
4255	$(MAKE) stagefeedback
4256	$(STAMP) stagefeedback_copy
4257	echo stagefeedback2_build > stage_last
4258
4259# For bootstrap4:
4260stage3_copy: stage3_build
4261	$(MAKE) stage3
4262	$(STAMP) stage3_copy
4263	echo stage4_build > stage_last
4264
4265stage4_build: stage3_copy
4266	$(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/" \
4267		 STAGE_PREFIX=stage3/ \
4268		 $(POSTSTAGE1_FLAGS_TO_PASS) \
4269		 $(STAGE2_FLAGS_TO_PASS)
4270	$(STAMP) stage4_build
4271	echo stage4_build > stage_last
4272
4273# Additional steps for *-lean targets:
4274clean_s1: stage1_copy
4275	-(cd stage1 && rm -f $(VOL_FILES))
4276	$(STAMP) clean_s1
4277
4278clean_s2: stage2_copy
4279	-rm -rf stage1
4280	$(STAMP) clean_s2
4281
4282# The various entry points for bootstrapping.
4283
4284bootstrap: stage3_build
4285	@echo
4286	@echo Bootstrap complete - make \"quickstrap\" to redo last build,
4287	@echo \"restage1\" through \"restage3\" to rebuild specific stages,
4288	@echo \"restrap\" to redo the bootstrap from stage1, or
4289	@echo \"cleanstrap\" to redo the bootstrap from scratch.
4290
4291bootstrap-lean : clean_s1 clean_s2 stage3_build
4292	@echo
4293	@echo Bootstrap complete - make \"quickstrap\" to redo last build,
4294	@echo or \"cleanstrap\" to redo the bootstrap from scratch.
4295
4296bootstrap2: bootstrap
4297
4298bootstrap2-lean : bootstrap-lean
4299
4300bootstrap3 bootstrap3-lean: bootstrap
4301
4302bootstrap4 bootstrap4-lean: stage4_build
4303
4304unstage1 unstage2 unstage3 unstage4 unstageprofile unstagefeedback:
4305	-set -vx; stage=`echo $@ | sed -e 's/un//'`; \
4306	rm -f $$stage/as$(exeext); \
4307	rm -f $$stage/nm$(exeext); \
4308	rm -f $$stage/collect-ld$(exeext); \
4309	if test -d $$stage; then \
4310	  mv $$stage/specs $(SPECS) 2>/dev/null || :; \
4311	  mv $$stage/* . 2>/dev/null; \
4312	  for i in `cd $$stage; echo *` ; do \
4313	    if test -d $$stage/$$i; then \
4314	      mv $$stage/$$i/* $$i/. 2>/dev/null; \
4315	    else \
4316	      mv $$stage/$$i .; \
4317	    fi; \
4318	  done \
4319	fi ; \
4320	rm -f $${stage}_build $${stage}_copy ;\
4321	echo $${stage}_build > stage_last
4322
4323restage1: unstage1
4324	$(MAKE) $(REMAKEFLAGS) stage1_build
4325
4326restage2: unstage2
4327	$(MAKE) $(REMAKEFLAGS) stage2_build
4328
4329restage3: unstage3
4330	$(MAKE) $(REMAKEFLAGS) stage3_build
4331
4332restage4: unstage4
4333	$(MAKE) $(REMAKEFLAGS) stage4_build
4334
4335restageprofile: unstageprofile
4336	$(MAKE) $(REMAKEFLAGS) stageprofile_build
4337
4338restagefeedback: unstagefeedback
4339	$(MAKE) $(REMAKEFLAGS) stagefeedback_build
4340
4341# Bubble up a bugfix through all the stages.  Primarily useful for fixing
4342# bugs that cause the compiler to crash while building stage 2.
4343bubblestrap:
4344	if test -f stage_last; then \
4345	  LAST=`sed -e 's/_build//' < stage_last`; \
4346	  if test "$$LAST" != "stage1"; then \
4347	    $(MAKE) $(REMAKEFLAGS) $$LAST; \
4348	    $(STAMP) $${LAST}_copy; \
4349	  fi; \
4350	fi
4351	if test -f stage1_copy; then $(MAKE) unstage1; fi
4352	$(MAKE) $(REMAKEFLAGS) stage1_copy
4353	if test -f stage2_copy; then $(MAKE) unstage2; fi
4354	$(MAKE) $(REMAKEFLAGS) stage2_copy
4355	if test -f stage3_copy; then $(MAKE) unstage3; fi
4356	$(MAKE) $(REMAKEFLAGS) stage3_build
4357	if test -f stage4_copy; then \
4358	  $(MAKE) $(REMAKEFLAGS) stage3_copy; $(MAKE) unstage4; \
4359	  $(MAKE) $(REMAKEFLAGS) stage4_build || exit 1; \
4360	fi
4361
4362BOOTSTRAPPING := $(shell if test -f ../stage_last; then echo yes; else echo no; fi)
4363ifeq ($(BOOTSTRAPPING),yes)
4364# Provide quickstrap as a target that people can type into the gcc directory,
4365# and that fails if you're not into it.
4366quickstrap: all
4367else
4368quickstrap:
4369	if test -f stage_last ; then \
4370	  LAST=`cat stage_last`; rm $$LAST; $(MAKE) $(REMAKEFLAGS) $$LAST; \
4371	else \
4372	  $(MAKE) $(REMAKEFLAGS) stage1_build; \
4373	fi
4374endif
4375
4376cleanstrap:
4377	-$(MAKE) clean
4378	$(MAKE) $(REMAKEFLAGS) bootstrap
4379
4380unstrap:
4381	-rm -rf stage[234]*
4382	$(MAKE) unstage1
4383	-rm -f stage_last
4384
4385# Differs from cleanstrap in that it starts from the earlier stage1 build,
4386# not from scratch.
4387restrap:
4388	$(MAKE) unstrap
4389	$(MAKE) $(REMAKEFLAGS) bootstrap
4390
4391# These targets compare the object files in the current directory with
4392# those in a stage directory.  We need to skip the first N bytes of
4393# each object file.  The "slow" mechanism assumes nothing special
4394# about cmp and uses the tail command to skip.  ./ avoids a bug in
4395# some versions of tail.  The "gnu" targets use gnu cmp (diffutils
4396# v2.4 or later), to avoid running tail and the overhead of twice
4397# copying each object file.  Likewise, the "fast" targets use the skip
4398# parameter of cmp available on some systems to accomplish the same
4399# thing.  An exit status of 1 is precisely the result we're looking
4400# for (other values mean other problems).
4401slowcompare slowcompare3 slowcompare4 slowcompare-lean slowcompare3-lean slowcompare4-lean \
4402fastcompare fastcompare3 fastcompare4 fastcompare-lean fastcompare3-lean fastcompare4-lean \
4403 gnucompare  gnucompare3  gnucompare4  gnucompare-lean  gnucompare3-lean  gnucompare4-lean: force
4404	-rm -f .bad_compare
4405	case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
4406	for dir in . $(SUBDIRS) libgcc; do \
4407	  if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
4408	    for file in $$dir/*$(objext); do \
4409	      case "$@" in \
4410		slowcompare* ) \
4411		  if tail -c +1 </dev/null >/dev/null 2>&1; then \
4412		    skip16='-c +17'; \
4413		  else \
4414		    skip16='+17c'; \
4415		  fi; \
4416		  tail $$skip16 ./$$file > tmp-foo1; \
4417		  tail $$skip16 stage$$stage/$$file > tmp-foo2; \
4418		  cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1; \
4419		  cmpret=$$?; \
4420		  ;; \
4421		fastcompare* ) \
4422		  cmp $$file stage$$stage/$$file 16 16 > /dev/null 2>&1; \
4423		  cmpret=$$?; \
4424		  ;; \
4425		gnucompare* ) \
4426		  cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1; \
4427		  cmpret=$$?; \
4428		  ;; \
4429	      esac ; \
4430	      if test $$cmpret -eq 1; then \
4431		case $$file in \
4432		  ./cc*-checksum$(objext) | libgcc/* ) \
4433		    echo warning: $$file differs;; \
4434		  *) \
4435		    echo $$file differs >> .bad_compare;; \
4436		esac ; \
4437	      fi; \
4438	    done; \
4439	  else true; fi; \
4440	done
4441	-rm -f tmp-foo*
4442	case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
4443	if [ -f .bad_compare ]; then \
4444	  echo "Bootstrap comparison failure!"; \
4445	  cat .bad_compare; \
4446	  exit 1; \
4447	else \
4448	  case "$@" in \
4449	    *-lean ) rm -rf stage$$stage ;; \
4450	    *) ;; \
4451	  esac; true; \
4452	fi
4453
4454# Forwarding wrappers to the most appropriate version.
4455compare: @make_compare_target@
4456compare3: @make_compare_target@3
4457compare4: @make_compare_target@4
4458compare-lean: @make_compare_target@-lean
4459compare3-lean: @make_compare_target@3-lean
4460compare4-lean: @make_compare_target@4-lean
4461
4462# Copy the object files from a particular stage into a subdirectory.
4463stage1-start:
4464	-if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
4465	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stage1
4466	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
4467	 do \
4468	   if [ -d stage1/$$dir ] ; then true ; else mkdir stage1/$$dir ; fi ; \
4469	 done
4470	-rm -f stage1/libgcc.a stage1/libgcc_eh.a stage1/libgcov.a
4471	-rm -f stage1/libgcc_s*$(SHLIB_EXT)
4472	-rm -f stage1/libunwind.a stage1/libunwind*$(SHLIB_EXT)
4473# If SPECS is overridden, make sure it is `installed' as specs.
4474	-mv $(SPECS) stage1/specs
4475	-mv $(STAGEMOVESTUFF) stage1
4476	-mv build/* stage1/build
4477	-cp -p $(STAGECOPYSTUFF) stage1
4478# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
4479# dir will work properly.
4480	-if [ -f as$(exeext) ] ; then (cd stage1 && $(LN_S) ../as$(exeext) .) ; else true ; fi
4481	-if [ -f ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
4482	-if [ -f collect-ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
4483	-cp libgcc.a stage1
4484	-$(RANLIB_FOR_TARGET) stage1/libgcc.a
4485	-cp libgcov.a stage1
4486	-$(RANLIB_FOR_TARGET) stage1/libgcov.a
4487	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage1; \
4488	   $(RANLIB_FOR_TARGET) stage1/libgcc_eh.a; \
4489	fi
4490	-cp libgcc_s*$(SHLIB_EXT) stage1
4491	-cp libunwind.a libunwind*$(SHLIB_EXT) stage1
4492	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
4493	  cp stage1/$${f} . ; \
4494	else true; \
4495	fi; done
4496stage1: force stage1-start lang.stage1
4497	-for dir in . $(SUBDIRS) ; \
4498	do \
4499	  rm -f $$dir/*$(coverageexts) ; \
4500	done
4501
4502stage2-start:
4503	-if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
4504	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stage2
4505	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
4506	 do \
4507	   if [ -d stage2/$$dir ] ; then true ; else mkdir stage2/$$dir ; fi ; \
4508	 done
4509	-rm -f stage2/libgcc.a stage2/libgcov.a stage2/libgcc_eh.a
4510	-rm -f stage2/libgcc_s*$(SHLIB_EXT)
4511	-rm -f stage2/libunwind.a stage2/libunwind*$(SHLIB_EXT)
4512# If SPECS is overridden, make sure it is `installed' as specs.
4513	-mv $(SPECS) stage2/specs
4514	-mv $(STAGEMOVESTUFF) stage2
4515	-mv build/* stage2/build
4516	-cp -p $(STAGECOPYSTUFF) stage2
4517# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
4518# dir will work properly.
4519	-if [ -f as$(exeext) ] ; then (cd stage2 && $(LN_S) ../as$(exeext) .) ; else true ; fi
4520	-if [ -f ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
4521	-if [ -f collect-ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
4522	-cp libgcc.a stage2
4523	-$(RANLIB_FOR_TARGET) stage2/libgcc.a
4524	-cp libgcov.a stage2
4525	-$(RANLIB_FOR_TARGET) stage2/libgcov.a
4526	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage2; \
4527	   $(RANLIB_FOR_TARGET) stage2/libgcc_eh.a; \
4528	fi
4529	-cp libgcc_s*$(SHLIB_EXT) stage2
4530	-cp libunwind.a libunwind*$(SHLIB_EXT) stage2
4531	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
4532	  cp stage2/$${f} . ; \
4533	else true; \
4534	fi; done
4535stage2: force stage2-start lang.stage2
4536
4537stage3-start:
4538	-if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
4539	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stage3
4540	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
4541	 do \
4542	   if [ -d stage3/$$dir ] ; then true ; else mkdir stage3/$$dir ; fi ; \
4543	 done
4544	-rm -f stage3/libgcc.a stage3/libgcov.a stage3/libgcc_eh.a
4545	-rm -f stage3/libgcc_s*$(SHLIB_EXT)
4546	-rm -f stage3/libunwind.a stage3/libunwind*$(SHLIB_EXT)
4547# If SPECS is overridden, make sure it is `installed' as specs.
4548	-mv $(SPECS) stage3/specs
4549	-mv $(STAGEMOVESTUFF) stage3
4550	-mv build/* stage3/build
4551	-cp -p $(STAGECOPYSTUFF) stage3
4552# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
4553# dir will work properly.
4554	-if [ -f as$(exeext) ] ; then (cd stage3 && $(LN_S) ../as$(exeext) .) ; else true ; fi
4555	-if [ -f ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
4556	-if [ -f collect-ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
4557	-cp libgcc.a stage3
4558	-$(RANLIB_FOR_TARGET) stage3/libgcc.a
4559	-cp libgcov.a stage3
4560	-$(RANLIB_FOR_TARGET) stage3/libgcov.a
4561	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage3; \
4562	   $(RANLIB_FOR_TARGET) stage3/libgcc_eh.a; \
4563	fi
4564	-cp libgcc_s*$(SHLIB_EXT) stage3
4565	-cp libunwind.a libunwind*$(SHLIB_EXT) stage3
4566	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
4567	  cp stage3/$${f} . ; \
4568	else true; \
4569	fi; done
4570stage3: force stage3-start lang.stage3
4571
4572stage4-start:
4573	-if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
4574	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stage4
4575	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
4576	 do \
4577	   if [ -d stage4/$$dir ] ; then true ; else mkdir stage4/$$dir ; fi ; \
4578	 done
4579	-rm -f stage4/libgcc.a stage4/libgcov.a stage4/libgcc_eh.a
4580	-rm -f stage4/libgcc_s*$(SHLIB_EXT)
4581	-rm -f stage4/libunwind.a stage4/libunwind*$(SHLIB_EXT)
4582# If SPECS is overridden, make sure it is `installed' as specs.
4583	-mv $(SPECS) stage4/specs
4584	-mv $(STAGEMOVESTUFF) stage4
4585	-mv build/* stage4/build
4586	-cp -p $(STAGECOPYSTUFF) stage4
4587# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
4588# dir will work properly.
4589	-if [ -f as$(exeext) ] ; then (cd stage4 && $(LN_S) ../as$(exeext) .) ; else true ; fi
4590	-if [ -f ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
4591	-if [ -f collect-ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
4592	-cp libgcc.a stage4
4593	-$(RANLIB_FOR_TARGET) stage4/libgcc.a
4594	-cp libgcov.a stage4
4595	-$(RANLIB_FOR_TARGET) stage4/libgcov.a
4596	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage4; \
4597	   $(RANLIB_FOR_TARGET) stage4/libgcc_eh.a; \
4598	fi
4599	-cp libgcc_s*$(SHLIB_EXT) stage4
4600	-cp libunwind.a libunwind*$(SHLIB_EXT) stage4
4601	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
4602	  cp stage4/$${f} . ; \
4603	else true; \
4604	fi; done
4605stage4: force stage4-start lang.stage4
4606
4607stageprofile-start:
4608	-if [ -d stageprofile ] ; then true ; else mkdir stageprofile ; fi
4609	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stageprofile
4610	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
4611	 do \
4612	   if [ -d stageprofile/$$dir ] ; then true ; else mkdir stageprofile/$$dir ; fi ; \
4613	 done
4614	-rm -f stageprofile/libgcc.a stageprofile/libgcov.a stageprofile/libgcc_eh.a
4615	-rm -f stageprofile/libgcc_s*$(SHLIB_EXT)
4616	-rm -f stageprofile/libunwind.a stageprofile/libunwind*$(SHLIB_EXT)
4617	-mv $(STAGEMOVESTUFF) stageprofile
4618	-mv build/* stageprofile/build
4619	-cp -p $(STAGECOPYSTUFF) stageprofile
4620# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
4621# dir will work properly.
4622	-if [ -f as$(exeext) ] ; then (cd stageprofile && $(LN_S) ../as$(exeext) .) ; else true ; fi
4623	-if [ -f ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../ld$(exeext) .) ; else true ; fi
4624	-if [ -f collect-ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
4625	-cp libgcc.a stageprofile
4626	-$(RANLIB_FOR_TARGET) stageprofile/libgcc.a
4627	-cp libgcov.a stageprofile
4628	-$(RANLIB_FOR_TARGET) stageprofile/libgcov.a
4629	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stageprofile; \
4630	   $(RANLIB_FOR_TARGET) stageprofile/libgcc_eh.a; \
4631	fi
4632	-cp libgcc_s*$(SHLIB_EXT) stageprofile
4633	-cp libunwind.a libunwind*$(SHLIB_EXT) stageprofile
4634	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
4635	  cp stageprofile/$${f} . ; \
4636	else true; \
4637	fi; done
4638stageprofile: force stageprofile-start lang.stageprofile
4639
4640stagefeedback-start:
4641	-if [ -d stagefeedback ] ; then true ; else mkdir stagefeedback ; fi
4642	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stagefeedback
4643	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
4644	 do \
4645	   if [ -d stagefeedback/$$dir ] ; then true ; else mkdir stagefeedback/$$dir ; fi ; \
4646	 done
4647	-rm -f stagefeedback/libgcc.a stagefeedback/libgcov.a stagefeedback/libgcc_eh.a
4648	-rm -f stagefeedback/libgcc_s*$(SHLIB_EXT)
4649	-rm -f stagefeedback/libunwind.a stagefeedback/libunwind*$(SHLIB_EXT)
4650	-rm -f *.da
4651	-mv $(STAGEMOVESTUFF) stagefeedback
4652	-mv build/* stagefeedback/build
4653	-cp -p $(STAGECOPYSTUFF) stagefeedback
4654# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
4655# dir will work properly.
4656	-if [ -f as$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../as$(exeext) .) ; else true ; fi
4657	-if [ -f ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../ld$(exeext) .) ; else true ; fi
4658	-if [ -f collect-ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
4659	-for dir in fixinc po testsuite $(SUBDIRS); \
4660	 do \
4661	   rm -f $$dir/*.da ; \
4662	 done
4663	-cp libgcc.a stagefeedback
4664	-$(RANLIB_FOR_TARGET) stagefeedback/libgcc.a
4665	-cp libgcov.a stagefeedback
4666	-$(RANLIB_FOR_TARGET) stagefeedback/libgcov.a
4667	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stagefeedback; \
4668	   $(RANLIB_FOR_TARGET) stagefeedback/libgcc_eh.a; \
4669	fi
4670	-cp libgcc_s*$(SHLIB_EXT) stagefeedback
4671	-cp libunwind.a libunwind*$(SHLIB_EXT) stagefeedback
4672	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
4673	  cp stagefeedback/$${f} . ; \
4674	else true; \
4675	fi; done
4676stagefeedback: force stagefeedback-start lang.stagefeedback
4677
4678# Copy just the executable files from a particular stage into a subdirectory,
4679# and delete the object files.  Use this if you're just verifying a version
4680# that is pretty sure to work, and you are short of disk space.
4681risky-stage1: stage1
4682	-$(MAKE) clean
4683
4684risky-stage2: stage2
4685	-$(MAKE) clean
4686
4687risky-stage3: stage3
4688	-$(MAKE) clean
4689
4690risky-stage4: stage4
4691	-$(MAKE) clean
4692
4693#In GNU Make, ignore whether `stage*' exists.
4694.PHONY: stage1 stage2 stage3 stage4 clean maintainer-clean TAGS bootstrap
4695.PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4
4696.PHONY: stagefeedback stageprofile
4697
4698# -----------------------------------------------------
4699# Rules for generating translated message descriptions.
4700# Disabled by autoconf if the tools are not available.
4701# -----------------------------------------------------
4702
4703XGETTEXT = @XGETTEXT@
4704GMSGFMT = @GMSGFMT@
4705MSGMERGE = msgmerge
4706CATALOGS = $(patsubst %,po/%,@CATALOGS@)
4707
4708.PHONY: build- install- build-po install-po update-po
4709
4710# Dummy rules to deal with dependencies produced by use of
4711# "build-@POSUB@" and "install-@POSUB@" above, when NLS is disabled.
4712build-: ; @true
4713install-: ; @true
4714
4715build-po: $(CATALOGS)
4716
4717# This notation should be acceptable to all Make implementations used
4718# by people who are interested in updating .po files.
4719update-po: $(CATALOGS:.gmo=.pox)
4720
4721# N.B. We do not attempt to copy these into $(srcdir).  The snapshot
4722# script does that.
4723.po.gmo:
4724	-test -d po || mkdir po
4725	$(GMSGFMT) --statistics -o $@ $<
4726
4727# The new .po has to be gone over by hand, so we deposit it into
4728# build/po with a different extension.
4729# If build/po/gcc.pot exists, use it (it was just created),
4730# else use the one in srcdir.
4731.po.pox:
4732	-test -d po || mkdir po
4733	$(MSGMERGE) $< `if test -f po/gcc.pot; \
4734			then echo po/gcc.pot; \
4735			else echo $(srcdir)/po/gcc.pot; fi` -o $@
4736
4737# This rule has to look for .gmo modules in both srcdir and
4738# the cwd, and has to check that we actually have a catalog
4739# for each language, in case they weren't built or included
4740# with the distribution.
4741install-po:
4742	$(mkinstalldirs) $(DESTDIR)$(datadir)
4743	cats="$(CATALOGS)"; for cat in $$cats; do \
4744	  lang=`basename $$cat | sed 's/\.gmo$$//'`; \
4745	  if [ -f $$cat ]; then :; \
4746	  elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \
4747	  else continue; \
4748	  fi; \
4749	  dir=$(localedir)/$$lang/LC_MESSAGES; \
4750	  echo $(mkinstalldirs) $(DESTDIR)$$dir; \
4751	  $(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \
4752	  echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
4753	  $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
4754	done
4755
4756# Rule for regenerating the message template (gcc.pot).
4757# Instead of forcing everyone to edit POTFILES.in, which proved impractical,
4758# this rule has no dependencies and always regenerates gcc.pot.  This is
4759# relatively harmless since the .po files do not directly depend on it.
4760# Note that exgettext has an awk script embedded in it which requires a
4761# fairly modern (POSIX-compliant) awk.
4762# The .pot file is left in the build directory.
4763gcc.pot: po/gcc.pot
4764po/gcc.pot: force
4765	-test -d po || mkdir po
4766	$(MAKE) srcextra
4767	AWK=$(AWK) $(SHELL) $(srcdir)/po/exgettext \
4768		$(XGETTEXT) gcc $(srcdir)
4769