1132727Skan# Makefile for GNU Compiler Collection
2132727Skan# Run 'configure' to generate Makefile from Makefile.in
318334Speter
4169699Skan# Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
5169699Skan# 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6169699Skan# Free Software Foundation, Inc.
7132727Skan
890081Sobrien#This file is part of GCC.
918334Speter
1090081Sobrien#GCC is free software; you can redistribute it and/or modify
1118334Speter#it under the terms of the GNU General Public License as published by
1218334Speter#the Free Software Foundation; either version 2, or (at your option)
1318334Speter#any later version.
1418334Speter
1590081Sobrien#GCC is distributed in the hope that it will be useful,
1618334Speter#but WITHOUT ANY WARRANTY; without even the implied warranty of
1718334Speter#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1818334Speter#GNU General Public License for more details.
1918334Speter
2018334Speter#You should have received a copy of the GNU General Public License
2190081Sobrien#along with GCC; see the file COPYING.  If not, write to
22169699Skan#the Free Software Foundation, 51 Franklin Street, Fifth Floor,
23169699Skan#Boston MA 02110-1301, USA.
2418334Speter
2518334Speter# The targets for external use include:
2618334Speter# all, doc, proto, install, install-cross, install-cross-rest,
2718334Speter# uninstall, TAGS, mostlyclean, clean, distclean, maintainer-clean,
2818334Speter# stage1, stage2, stage3, stage4.
2918334Speter
3090081Sobrien# This is the default target.
31132727Skan# Set by autoconf to "all.internal" for a native build, or
32132727Skan# "all.cross" to build a cross compiler.
33132727Skanall: @ALL@
3490081Sobrien
35132727Skan# Depend on this to specify a phony target portably.
36132727Skanforce:
37132727Skan
38132727Skan# This tells GNU make version 3 not to export the variables
39132727Skan# defined in this file into the environment (and thus recursive makes).
40132727Skan.NOEXPORT:
41132727Skan# And this tells it not to automatically pass command-line variables
42132727Skan# to recursive makes.
43132727SkanMAKEOVERRIDES =
44132727Skan
45132727Skan# Suppress smart makes who think they know how to automake yacc and flex file
4618334Speter.y.c:
47132727Skan.l.c:
4818334Speter
49132727Skan# The only suffixes we want for implicit rules are .c and .o, so clear
50132727Skan# the list and add them.  This speeds up GNU Make, and allows -r to work.
51132727Skan# For i18n support, we also need .gmo, .po, .pox.
52132727Skan# This must come before the language makefile fragments to allow them to
53132727Skan# add suffixes and rules of their own.
54132727Skan.SUFFIXES:
55132727Skan.SUFFIXES: .c .o .po .pox .gmo
56132727Skan
57132727Skan# -------------------------------
58132727Skan# Standard autoconf-set variables
59132727Skan# -------------------------------
60132727Skan
61132727Skanbuild=@build@
62132727Skanhost=@host@
63132727Skantarget=@target@
64132727Skantarget_noncanonical:=@target_noncanonical@
65132727Skan
66132727Skan# Sed command to transform gcc to installed name.
67132727Skanprogram_transform_name := @program_transform_name@
68132727Skan
69132727Skan# -----------------------------
70132727Skan# Directories used during build
71132727Skan# -----------------------------
72132727Skan
7350448Sobrien# Directory where sources are, from where we are.
7450448Sobriensrcdir = @srcdir@
75169699Skangcc_docdir = @srcdir@/doc
76132727Skan
77132727Skan# Directory where sources are, absolute.
78132727Skanabs_srcdir = @abs_srcdir@
79132727Skanabs_docdir = @abs_srcdir@/doc
80132727Skan
81169699Skan# Top build directory for this package, relative to here.
82169699Skantop_builddir = .
83132727Skan# objdir is set by configure.
84132727Skan# It's normally the absolute path to the current directory.
85132727Skanobjdir = @objdir@
86132727Skan
87169699Skanhost_subdir=@host_subdir@
88169699Skanbuild_subdir=@build_subdir@
89169699Skanbuild_libsubdir=@build_libsubdir@
90169699Skan
91169699Skanifeq ($(host_subdir),.)
92169699Skanbuild_objdir := ../$(build_subdir)
93169699Skanbuild_libobjdir := ../$(build_libsubdir)
94169699Skanelse
95169699Skanbuild_objdir := ../../$(build_subdir)
96169699Skanbuild_libobjdir := ../../$(build_libsubdir)
97169699Skanendif
98169699Skan
99132727Skan# --------
100132727Skan# Defined vpaths
101132727Skan# --------
102132727Skan
103132727Skan# Directory where sources are, from where we are.
10450448SobrienVPATH = @srcdir@
10550448Sobrien
106169699Skan# We define a vpath for the sources of the .texi files here because they
107132727Skan# are split between multiple directories and we would rather use one implicit
108132727Skan# pattern rule for everything.
109132727Skan# This vpath could be extended within the Make-lang fragments.
11090081Sobrien
111169699Skanvpath %.texi $(gcc_docdir):$(gcc_docdir)/include
112132727Skan
113132727Skan# ----
114132727Skan# Default values for variables overridden in Makefile fragments.
115132727Skan# These need to be quite early in the Makefile so as to avoid
116132727Skan# trouble induced by changes in fragment ordering.
117132727Skan# ----
118132727Skan
119132727Skan# For ada/Make-lang.in; overridden in, for example, config/pa/x-ada.
120132727SkanX_ADA_CFLAGS =
121132727SkanT_ADA_CFLAGS =
122132727SkanX_ADAFLAGS =
123132727SkanT_ADAFLAGS =
124132727Skan
125132727Skan# --------
126132727Skan# UNSORTED
127132727Skan# --------
128132727Skan
12918334Speter# Variables that exist for you to override.
13018334Speter# See below for how to change them for certain systems.
13118334Speter
13218334Speter# List of language subdirectories.
133169699SkanSUBDIRS =@subdirs@ build
13418334Speter
13518334Speter# Selection of languages to be made.
136169699SkanCONFIG_LANGUAGES = @all_selected_languages@
137132727SkanLANGUAGES = c gcov$(exeext) gcov-dump$(exeext) $(CONFIG_LANGUAGES)
13818334Speter
13950448Sobrien# Selection of languages to be made during stage1 build.
14050448SobrienBOOT_LANGUAGES = c @all_boot_languages@
14150448Sobrien
14290081Sobrien# Various ways of specifying flags for compilations:
14390081Sobrien# CFLAGS is for the user to override to, e.g., do a cross build with -O2.
14490081Sobrien# For recursive  bootstrap builds CFLAGS is used to pass in STAGE1_CFLAGS
14590081Sobrien# or BOOT_CFLAGS
14690081Sobrien# STAGE1_CFLAGS is set by configure on some targets or passed from toplevel
14790081Sobrien# and sets the CFLAGS passed to stage1 of a bootstrap compilation.
148169699Skan# STAGE1_CHECKING enables checking for the stage1 compiler
14990081Sobrien# BOOT_CFLAGS is the value of CFLAGS to pass to the stage2, stage3 and stage4
15090081Sobrien# bootstrap compilations.
15118334Speter# XCFLAGS is used for most compilations but not when using the GCC just built.
15250448Sobrien# TCFLAGS is used for compilations with the GCC just built.
15318334SpeterXCFLAGS =
15450448SobrienTCFLAGS =
155169699SkanCFLAGS = @CFLAGS@
156169699SkanLDFLAGS = @LDFLAGS@
15790081SobrienSTAGE1_CFLAGS = -g @stage1_cflags@
158169699SkanSTAGE1_CHECKING_CFLAGS = -DENABLE_CHECKING -DENABLE_ASSERT_CHECKING
15990081SobrienBOOT_CFLAGS = -g -O2
16090081Sobrien
161117404Skan# Flags to determine code coverage. When coverage is disabled, this will
162117404Skan# contain the optimization flags, as you normally want code coverage
163132727Skan# without optimization.
164117404SkanCOVERAGE_FLAGS = @coverage_flags@
165132727Skancoverageexts = .{gcda,gcno}
166117404Skan
16790081Sobrien# The warning flags are separate from BOOT_CFLAGS because people tend to
16890081Sobrien# override optimization flags and we'd like them to still have warnings
16990081Sobrien# turned on.  These flags are also used to pass other stage dependent
17090081Sobrien# flags from configure.  The user is free to explicitly turn these flags
17190081Sobrien# off if they wish.
17290081Sobrien# LOOSE_WARN are the warning flags to use when compiling something
17390081Sobrien# which is only compiled with gcc, such as libgcc and the frontends
17490081Sobrien# other than C.
17590081Sobrien# STRICT_WARN and STRICT2_WARN are the additional warning flags to
17690081Sobrien# apply to the back end and the C front end, which may be compiled
17790081Sobrien# with other compilers.  This is partially controlled by configure in
178169699Skan# stage1, as not all versions of gcc understand -Wno-long-long or
179169699Skan# -Wno-variadic-macros.
180169699Skan# CXX_COMPAT_WARN are C++ source compatibility warnings.
18190081SobrienLOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
182132727SkanSTRICT_WARN = @strict1_warn@
183169699SkanWERROR_FLAGS = @WERROR@
184169699SkanSTRICT2_WARN = -pedantic -Wno-long-long -Wno-variadic-macros \
185169699Skan  -Wno-overlength-strings -Wold-style-definition -Wmissing-format-attribute \
186169699Skan  $(WERROR_FLAGS)
187169699SkanCXX_COMPAT_WARN = @cxx_compat_warn@
18890081Sobrien
189117404Skan# This is set by --enable-checking.  The idea is to catch forgotten
190117404Skan# "extern" tags in header files.
191117404SkanNOCOMMON_FLAG = @nocommon_flag@
192117404Skan
193132727Skan# This is set by --disable-maintainer-mode (default) to "#"
194132727SkanMAINT := @MAINT@
195132727Skan
196117404Skan# These are set by --enable-checking=valgrind.
197117404SkanRUN_GEN = @valgrind_command@
198117404SkanVALGRIND_DRIVER_DEFINES = @valgrind_path_defines@
199117404Skan
20090081Sobrien# This is how we control whether or not the additional warnings are applied.
20190081Sobrien.-warn = $(STRICT_WARN)
202169699Skanbuild-warn = $(STRICT_WARN)
203132727SkanGCC_WARN_CFLAGS = $(LOOSE_WARN) $($(@D)-warn) $(NOCOMMON_FLAG) $($@-warn)
20490081Sobrien
205169699Skan# These files are to have specific diagnostics suppressed, or are not to
206169699Skan# be subject to -Werror:
207132727Skan# Bison-1.75 output often yields (harmless) -Wtraditional warnings
208169699Skanbuild/gengtype-yacc.o-warn = -Wno-error
209132727Skan# flex output may yield harmless "no previous prototype" warnings
210169699Skanbuild/gengtype-lex.o-warn = -Wno-error
211132727Skan# SYSCALLS.c misses prototypes
212132727SkanSYSCALLS.c.X-warn = -Wno-strict-prototypes -Wno-error
213169699Skan# These files need -Wno-error because the gimplifier triggers hard to fix
214169699Skan# warnings when converting to GIMPLE form.  The warnings are triggered because
215169699Skan# moving the condition into the loop prevents the loop optimizer from
216169699Skan# recognizing that the loop will always be executed at least once.  We need
217169699Skan# a new loop optimizer.
218169699Skanreload1.o-warn = -Wno-error
219132727Skan
22090081Sobrien# All warnings have to be shut off in stage1 if the compiler used then
22190081Sobrien# isn't gcc; configure determines that.  WARN_CFLAGS will be either
22290081Sobrien# $(GCC_WARN_CFLAGS), or nothing.
22390081SobrienWARN_CFLAGS = @warn_cflags@
22490081Sobrien
225132727SkanCPPFLAGS = @CPPFLAGS@
226132727Skan
22718334Speter# These exists to be overridden by the x-* and t-* files, respectively.
22818334SpeterX_CFLAGS =
22918334SpeterT_CFLAGS =
23018334Speter
23118334SpeterX_CPPFLAGS =
23218334SpeterT_CPPFLAGS =
23318334Speter
23452298SobrienAWK = @AWK@
23550448SobrienCC = @CC@
23690081SobrienBISON = @BISON@
23718334SpeterBISONFLAGS =
23890081SobrienFLEX = @FLEX@
23990081SobrienFLEXFLAGS =
240169699SkanAR = @AR@
241243933SeadlerARFLAGS = @ARFLAGS@
242169699SkanNM = @NM@
24390081SobrienRANLIB = @RANLIB@
244169699SkanRANLIB_FLAGS = @ranlib_flags@
245132727Skan
246132727Skan# -------------------------------------------
247132727Skan# Programs which operate on the build machine
248132727Skan# -------------------------------------------
249132727Skan
250117404SkanSHELL = @SHELL@
251117404Skan# pwd command to use.  Allow user to override default by setting PWDCMD in
252117404Skan# the environment to account for automounters.  The make variable must not
253117404Skan# be called PWDCMD, otherwise the value set here is passed to make
254117404Skan# subprocesses and overrides the setting from the user's environment.
255117404Skan# Don't use PWD since it is a common shell environment variable and we
256117404Skan# don't want to corrupt it.
257117404SkanPWD_COMMAND = $${PWDCMD-pwd}
25818334Speter# on sysV, define this as cp.
25950448SobrienINSTALL = @INSTALL@
26050448Sobrien# Some systems may be missing symbolic links, regular links, or both.
26150448Sobrien# Allow configure to check this and use "ln -s", "ln", or "cp" as appropriate.
26250448SobrienLN=@LN@
26350448SobrienLN_S=@LN_S@
26418334Speter# These permit overriding just for certain files.
26550448SobrienINSTALL_PROGRAM = @INSTALL_PROGRAM@
26650448SobrienINSTALL_DATA = @INSTALL_DATA@
26790081SobrienINSTALL_SCRIPT = @INSTALL@
26890081SobrienMAKEINFO = @MAKEINFO@
269132727SkanMAKEINFOFLAGS = --no-split
27018334SpeterTEXI2DVI = texi2dvi
271169699SkanTEXI2PDF = texi2pdf
272169699SkanTEXI2HTML = $(MAKEINFO) --html
27390081SobrienTEXI2POD = perl $(srcdir)/../contrib/texi2pod.pl
27490081SobrienPOD2MAN = pod2man --center="GNU" --release="gcc-$(version)"
275132727Skan# Some versions of `touch' (such as the version on Solaris 2.8)
276132727Skan# do not correctly set the timestamp due to buggy versions of `utime'
277132727Skan# in the kernel.  So, we use `echo' instead.
278132727SkanSTAMP = echo timestamp >
279132727Skan
280132727Skan# Make sure the $(MAKE) variable is defined.
28150448Sobrien@SET_MAKE@
282132727SkanREMAKEFLAGS=LANGUAGES="$(LANGUAGES)" BOOT_CFLAGS="$(BOOT_CFLAGS)"
283132727Skan
284169699Skan# Locate mkinstalldirs.
285169699Skanmkinstalldirs=$(SHELL) $(srcdir)/../mkinstalldirs
286169699Skan
287132727Skan# --------
288132727Skan# UNSORTED
289132727Skan# --------
290132727Skan
29190081Sobrien# Some compilers can't handle cc -c blah.c -o foo/blah.o.
29290081Sobrien# In stage2 and beyond, we force this to "-o $@" since we know we're using gcc.
29390081SobrienOUTPUT_OPTION = @OUTPUT_OPTION@
29418334Speter
29590081Sobrien# This is where we get zlib from.  zlibdir is -L../zlib and zlibinc is
29690081Sobrien# -I../zlib, unless we were configured with --with-system-zlib, in which
29790081Sobrien# case both are empty.
29890081SobrienZLIB = @zlibdir@ -lz
29990081SobrienZLIBINC = @zlibinc@
30018334Speter
301169699Skan# How to find GMP
302169699SkanGMPLIBS = @GMPLIBS@
303169699SkanGMPINC = @GMPINC@
304169699Skan
305169699SkanCPPLIB = ../libcpp/libcpp.a
306169699SkanCPPINC = -I$(srcdir)/../libcpp/include
307169699Skan
308169699Skan# Where to find decNumber
309169699SkanDECNUM = $(srcdir)/../libdecnumber
310169699SkanDECNUMINC = -I$(DECNUM) -I../libdecnumber
311169699SkanLIBDECNUMBER = ../libdecnumber/libdecnumber.a
312169699Skan
31390081Sobrien# Substitution type for target's getgroups 2nd arg.
31490081SobrienTARGET_GETGROUPS_T = @TARGET_GETGROUPS_T@
31518334Speter
31618334Speter# Target to use when installing include directory.  Either
31790081Sobrien# install-headers-tar, install-headers-cpio or install-headers-cp.
31850448SobrienINSTALL_HEADERS_DIR = @build_install_headers_dir@
31918334Speter
32018334Speter# Header files that are made available under the same name
32118334Speter# to programs compiled with GCC.
322169699SkanUSER_H = $(srcdir)/ginclude/decfloat.h \
323169699Skan	 $(srcdir)/ginclude/float.h \
324117404Skan	 $(srcdir)/ginclude/iso646.h \
325117404Skan	 $(srcdir)/ginclude/stdarg.h \
326117404Skan	 $(srcdir)/ginclude/stdbool.h \
327117404Skan	 $(srcdir)/ginclude/stddef.h \
328117404Skan	 $(srcdir)/ginclude/varargs.h \
329117404Skan	 $(EXTRA_HEADERS)
33018334Speter
331169699SkanUNWIND_H = $(srcdir)/unwind-generic.h
332169699Skan
333117404Skan# The GCC to use for compiling libgcc.a and crt*.o.
33418334Speter# Usually the one we just built.
33518334Speter# Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
336132727SkanGCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -L$(objdir)/../ld
33718334Speter
33818334Speter# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
33918334Speter# It omits XCFLAGS, and specifies -B./.
34090081Sobrien# It also specifies -isystem ./include to find, e.g., stddef.h.
341169699SkanGCC_CFLAGS=$(CFLAGS_FOR_TARGET) $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -Wold-style-definition $($@-warn) -isystem ./include $(TCFLAGS)
34218334Speter
343132727Skan# ---------------------------------------------------
344132727Skan# Programs which produce files for the target machine
345132727Skan# ---------------------------------------------------
34618334Speter
347169699SkanAR_FOR_TARGET := $(shell \
34850448Sobrien  if [ -f $(objdir)/../binutils/ar ] ; then \
34950448Sobrien    echo $(objdir)/../binutils/ar ; \
35050448Sobrien  else \
351132727Skan    if [ "$(host)" = "$(target)" ] ; then \
352169699Skan      echo $(AR); \
35350448Sobrien    else \
354132727Skan       t='$(program_transform_name)'; echo ar | sed -e $$t ; \
35550448Sobrien    fi; \
356169699Skan  fi)
35790081SobrienAR_FLAGS_FOR_TARGET =
35890081SobrienAR_CREATE_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) rc
35990081SobrienAR_EXTRACT_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) x
360169699SkanLIPO_FOR_TARGET = lipo
361169699SkanORIGINAL_AS_FOR_TARGET = @ORIGINAL_AS_FOR_TARGET@
362169699SkanRANLIB_FOR_TARGET := $(shell \
36350448Sobrien  if [ -f $(objdir)/../binutils/ranlib ] ; then \
36450448Sobrien    echo $(objdir)/../binutils/ranlib ; \
36550448Sobrien  else \
366132727Skan    if [ "$(host)" = "$(target)" ] ; then \
367132727Skan      echo $(RANLIB); \
36850448Sobrien    else \
369132727Skan       t='$(program_transform_name)'; echo ranlib | sed -e $$t ; \
37050448Sobrien    fi; \
371169699Skan  fi)
372169699SkanORIGINAL_LD_FOR_TARGET = @ORIGINAL_LD_FOR_TARGET@
373169699SkanORIGINAL_NM_FOR_TARGET = @ORIGINAL_NM_FOR_TARGET@
374169699SkanNM_FOR_TARGET = ./nm
375169699SkanSTRIP_FOR_TARGET := $(shell \
376169699Skan  if [ -f $(objdir)/../binutils/strip ] ; then \
377169699Skan    echo $(objdir)/../binutils/strip ; \
37890081Sobrien  else \
379132727Skan    if [ "$(host)" = "$(target)" ] ; then \
380169699Skan      echo strip; \
38190081Sobrien    else \
382169699Skan       t='$(program_transform_name)'; echo strip | sed -e $$t ; \
38390081Sobrien    fi; \
384169699Skan  fi)
38518334Speter
386132727Skan# --------
387132727Skan# UNSORTED
388132727Skan# --------
389132727Skan
39090081Sobrien# Where to find some libiberty headers.
39190081SobrienHASHTAB_H   = $(srcdir)/../include/hashtab.h
39290081SobrienOBSTACK_H   = $(srcdir)/../include/obstack.h
39390081SobrienSPLAY_TREE_H= $(srcdir)/../include/splay-tree.h
39490081SobrienFIBHEAP_H   = $(srcdir)/../include/fibheap.h
395117404SkanPARTITION_H = $(srcdir)/../include/partition.h
396169699SkanMD5_H	    = $(srcdir)/../include/md5.h
39718334Speter
39890081Sobrien# Default native SYSTEM_HEADER_DIR, to be overridden by targets.
39990081SobrienNATIVE_SYSTEM_HEADER_DIR = /usr/include
40090081Sobrien# Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
401132727SkanCROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
40218334Speter
40390081Sobrien# autoconf sets SYSTEM_HEADER_DIR to one of the above.
404169699Skan# Purge it of unneccessary internal relative paths
405169699Skan# to directories that might not exist yet.
406169699Skan# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
407169699Skan# Use single quotes here to avoid nested double- and backquotes, this
408169699Skan# macro is also used in a double-quoted context.
409169699SkanSYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e 's,[^/]*/\.\.\/,,' -e ta`
41090081Sobrien
41190081Sobrien# Control whether to run fixproto and fixincludes.
41290081SobrienSTMP_FIXPROTO = @STMP_FIXPROTO@
41390081SobrienSTMP_FIXINC = @STMP_FIXINC@
41490081Sobrien
41518334Speter# Test to see whether <limits.h> exists in the system header files.
41618334SpeterLIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
41718334Speter
418132727Skan# Directory for prefix to system directories, for
419132727Skan# each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
420132727SkanTARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
421132727Skan
422132727Skanxmake_file=@xmake_file@
423132727Skantmake_file=@tmake_file@
42450448Sobrienout_file=$(srcdir)/config/@out_file@
42550448Sobrienout_object_file=@out_object_file@
42650448Sobrienmd_file=$(srcdir)/config/@md_file@
427132727Skantm_file_list=@tm_file_list@
428132727Skantm_include_list=@tm_include_list@
429117404Skantm_defines=@tm_defines@
43090081Sobrientm_p_file_list=@tm_p_file_list@
431132727Skantm_p_include_list=@tm_p_include_list@
43290081Sobrienbuild_xm_file_list=@build_xm_file_list@
433132727Skanbuild_xm_include_list=@build_xm_include_list@
43490081Sobrienbuild_xm_defines=@build_xm_defines@
43590081Sobrienhost_xm_file_list=@host_xm_file_list@
436132727Skanhost_xm_include_list=@host_xm_include_list@
43790081Sobrienhost_xm_defines=@host_xm_defines@
438132727Skanxm_file_list=@xm_file_list@
439132727Skanxm_include_list=@xm_include_list@
44090081Sobrienxm_defines=@xm_defines@
441132727Skanlang_checks=check-gcc
442132727Skanlang_opt_files=@lang_opt_files@ $(srcdir)/c.opt $(srcdir)/common.opt
44350448Sobrienlang_specs_files=@lang_specs_files@
44452298Sobrienlang_tree_files=@lang_tree_files@
44590081Sobrientarget_cpu_default=@target_cpu_default@
44650448SobrienGCC_THREAD_FILE=@thread_file@
44752298SobrienOBJC_BOEHM_GC=@objc_boehm_gc@
44850448SobrienGTHREAD_FLAGS=@gthread_flags@
449132727Skanextra_modes_file=@extra_modes_file@
450169699Skanextra_opt_files=@extra_opt_files@
451132727Skanhost_hook_obj=@out_host_hook_obj@
45218334Speter
453132727Skan# ------------------------
454132727Skan# Installation directories
455132727Skan# ------------------------
456132727Skan
45718334Speter# Common prefix for installation directories.
45818334Speter# NOTE: This directory must exist when you start installation.
45950448Sobrienprefix = @prefix@
46018334Speter# Directory in which to put localized header files. On the systems with
46118334Speter# gcc as the native cc, `local_prefix' may not be `prefix' which is
46218334Speter# `/usr'.
46318334Speter# NOTE: local_prefix *should not* default from prefix.
46450448Sobrienlocal_prefix = @local_prefix@
46518334Speter# Directory in which to put host dependent programs and libraries
46650448Sobrienexec_prefix = @exec_prefix@
46718334Speter# Directory in which to put the executable for the command `gcc'
46850448Sobrienbindir = @bindir@
46918334Speter# Directory in which to put the directories used by the compiler.
47050448Sobrienlibdir = @libdir@
471132727Skan# Directory in which GCC puts its executables.
472132727Skanlibexecdir = @libexecdir@
473132727Skan
474132727Skan# --------
475132727Skan# UNSORTED
476132727Skan# --------
477132727Skan
478132727Skan# Directory in which the compiler finds libraries etc.
479132727Skanlibsubdir = $(libdir)/gcc/$(target_noncanonical)/$(version)
480132727Skan# Directory in which the compiler finds executables
481132727Skanlibexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(version)
48252298Sobrien# Used to produce a relative $(gcc_tooldir) in gcc.o
48352298Sobrienunlibsubdir = ../../..
48452298Sobrien# Directory in which to find other cross-compilation tools and headers.
48552298Sobriendollar = @dollar@
48652298Sobrien# Used in install-cross.
48752298Sobriengcc_tooldir = @gcc_tooldir@
48890081Sobrien# Used to install the shared libgcc.
48990081Sobrienslibdir = @slibdir@
49090081Sobrien# Since gcc_tooldir does not exist at build-time, use -B$(build_tooldir)/bin/
491132727Skanbuild_tooldir = $(exec_prefix)/$(target_noncanonical)
49290081Sobrien# Directory in which the compiler finds target-independent g++ includes.
49390081Sobriengcc_gxx_include_dir = @gcc_gxx_include_dir@
49418334Speter# Directory to search for site-specific includes.
49590081Sobrienlocal_includedir = $(local_prefix)/include
49690081Sobrienincludedir = $(prefix)/include
49718334Speter# where the info files go
49850448Sobrieninfodir = @infodir@
49950448Sobrien# Where cpp should go besides $prefix/bin if necessary
50050448Sobriencpp_install_dir = @cpp_install_dir@
50152298Sobrien# where the locale files go
50290081Sobriendatadir = @datadir@
50352298Sobrienlocaledir = $(datadir)/locale
50418334Speter# Extension (if any) to put in installed man-page filename.
50590081Sobrienman1ext = .1
50690081Sobrienman7ext = .7
50718334Speterobjext = .o
50850448Sobrienexeext = @host_exeext@
50950448Sobrienbuild_exeext = @build_exeext@
51018334Speter
51118334Speter# Directory in which to put man pages.
51252298Sobrienmandir = @mandir@
51352298Sobrienman1dir = $(mandir)/man1
51490081Sobrienman7dir = $(mandir)/man7
51518334Speter# Dir for temp files.
51618334Spetertmpdir = /tmp
51718334Speter
518169699Skandatarootdir = @datarootdir@
519169699Skandocdir = @docdir@
520169699Skan# Directory in which to build HTML
521169699Skanbuild_htmldir = $(objdir)/HTML/gcc-$(version)
522169699Skan# Directory in which to put HTML
523169699Skanhtmldir = @htmldir@
524169699Skan
52552298Sobrien# Whether we were configured with NLS.
52652298SobrienUSE_NLS = @USE_NLS@
52752298Sobrien
52852298Sobrien# Internationalization library.
529132727SkanLIBINTL = @LIBINTL@
530132727SkanLIBINTL_DEP = @LIBINTL_DEP@
53152298Sobrien
53290081Sobrien# Character encoding conversion library.
53390081SobrienLIBICONV = @LIBICONV@
534132727SkanLIBICONV_DEP = @LIBICONV_DEP@
53590081Sobrien
53690081Sobrien# The GC method to be used on this system.
53790081SobrienGGC=@GGC@.o
53818334Speter
53990081Sobrien# If a supplementary library is being used for the GC.
54090081SobrienGGC_LIB=
54118334Speter
54290081Sobrien# libgcc.a may be built directly or via stmp-multilib,
54390081Sobrien# and installed likewise.  Overridden by t-fragment.
54418334SpeterLIBGCC = libgcc.a
54518334SpeterINSTALL_LIBGCC = install-libgcc
54618334Speter
547169699Skan# "true" if the target C library headers are unavailable; "false"
548169699Skan# otherwise.
549169699Skaninhibit_libc = @inhibit_libc@
550169699Skanifeq ($(inhibit_libc),true)
551169699SkanINHIBIT_LIBC_CFLAGS = -Dinhibit_libc
552169699Skanendif
553169699Skan
55418334Speter# Options to use when compiling libgcc2.a.
55550448Sobrien#
55696273SobrienLIBGCC2_DEBUG_CFLAGS = -g
557169699SkanLIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) \
558169699Skan		 $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) \
559169699Skan		 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
560169699Skan		 $(INHIBIT_LIBC_CFLAGS)
56118334Speter
56218334Speter# Additional options to use when compiling libgcc2.a.
56390081Sobrien# Some targets override this to -isystem include
56418334SpeterLIBGCC2_INCLUDES =
56518334Speter
56618334Speter# Additional target-dependent options for compiling libgcc2.a.
56790081SobrienTARGET_LIBGCC2_CFLAGS =
56818334Speter
56990081Sobrien# Options to use when compiling crtbegin/end.
57090081SobrienCRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
571117404Skan  -finhibit-size-directive -fno-inline-functions -fno-exceptions \
572169699Skan  -fno-zero-initialized-in-bss -fno-toplevel-reorder \
573169699Skan  $(INHIBIT_LIBC_CFLAGS)
57418334Speter
575122190Skan# Additional sources to handle exceptions; overridden by targets as needed.
57690081SobrienLIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
577132727Skan   $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
578146906SkanLIB2ADDEHSTATIC = $(LIB2ADDEH)
579146906SkanLIB2ADDEHSHARED = $(LIB2ADDEH)
580169699SkanLIB2ADDEHDEP = $(UNWIND_H) unwind-pe.h unwind.inc unwind-dw2-fde.h unwind-dw2.h
58118334Speter
582146906Skan# Don't build libunwind by default.
583146906SkanLIBUNWIND =
584146906SkanLIBUNWINDDEP =
585146906SkanSHLIBUNWIND_LINK =
586146906SkanSHLIBUNWIND_INSTALL =
587146906Skan
58890081Sobrien# nm flags to list global symbols in libgcc object files.
58990081SobrienSHLIB_NM_FLAGS = -pg
59090081Sobrien
59118334Speter# List of extra executables that should be compiled for this target machine
59218334Speter# that are used for compiling from source code to object code.
59318334Speter# The rules for compiling them should be in the t-* file for the machine.
59450448SobrienEXTRA_PASSES =@extra_passes@
59518334Speter
59618334Speter# Like EXTRA_PASSES, but these are used when linking.
59750448SobrienEXTRA_PROGRAMS = @extra_programs@
59818334Speter
59918334Speter# List of extra object files that should be compiled for this target machine.
60018334Speter# The rules for compiling them should be in the t-* file for the machine.
60150448SobrienEXTRA_PARTS = @extra_parts@
60218334Speter
60318334Speter# List of extra object files that should be compiled and linked with
60418334Speter# compiler proper (cc1, cc1obj, cc1plus).
60550448SobrienEXTRA_OBJS = @extra_objs@
60618334Speter
60718334Speter# List of extra object files that should be compiled and linked with
60818334Speter# the gcc driver.
609132727SkanEXTRA_GCC_OBJS =@extra_gcc_objs@
61018334Speter
61118334Speter# List of additional header files to install.
61250448SobrienEXTRA_HEADERS =@extra_headers_list@
61318334Speter
614169699Skan# The configure script will set this to collect2$(exeext), except on a
615169699Skan# (non-Unix) host which can not build collect2, for which it will be
616169699Skan# set to empty.
617169699SkanCOLLECT2 = @collect2@
61818334Speter
61990081Sobrien# List of extra C and assembler files to add to static and shared libgcc2.
62018334Speter# Assembler files should have names ending in `.asm'.
62190081SobrienLIB2FUNCS_EXTRA =
62218334Speter
62390081Sobrien# List of extra C and assembler files to add to static libgcc2.
62418334Speter# Assembler files should have names ending in `.asm'.
62590081SobrienLIB2FUNCS_STATIC_EXTRA =
62618334Speter
627169699Skan# List of functions not to build from libgcc2.c.
628169699SkanLIB2FUNCS_EXCLUDE =
629146906Skan
630169699Skan# Target sfp-machine.h file.
631169699SkanSFP_MACHINE =
632169699Skan
63318334Speter# Program to convert libraries.
63490081SobrienLIBCONVERT =
63518334Speter
63618334Speter# Control whether header files are installed.
637117404SkanINSTALL_HEADERS=install-headers install-mkheaders
63818334Speter
63990081Sobrien# Control whether Info documentation is built and installed.
64090081SobrienBUILD_INFO = @BUILD_INFO@
64118334Speter
64290081Sobrien# Control whether manpages generated by texi2pod.pl can be rebuilt.
64390081SobrienGENERATED_MANPAGES = @GENERATED_MANPAGES@
64490081Sobrien
64518334Speter# Additional directories of header files to run fixincludes on.
64618334Speter# These should be directories searched automatically by default
64718334Speter# just as /usr/include is.
64890081Sobrien# *Do not* use this for directories that happen to contain
64918334Speter# header files, but are not searched automatically by default.
65018334Speter# On most systems, this is empty.
65118334SpeterOTHER_FIXINCLUDES_DIRS=
65218334Speter
65350448Sobrien# A list of all the language-specific executables.
65450448SobrienCOMPILERS = cc1$(exeext) @all_compilers@
65550448Sobrien
65618334Speter# List of things which should already be built whenever we try to use xgcc
65718334Speter# to compile anything (without linking).
658117404SkanGCC_PASSES=xgcc$(exeext) cc1$(exeext) specs $(EXTRA_PASSES)
65918334Speter
66018334Speter# List of things which should already be built whenever we try to use xgcc
66118334Speter# to link anything.
662169699SkanGCC_PARTS=$(GCC_PASSES) $(LIBGCC) $(EXTRA_PROGRAMS) $(COLLECT2) $(EXTRA_PARTS)
66318334Speter
66418334Speter# Directory to link to, when using the target `maketest'.
66518334SpeterDIR = ../gcc
66618334Speter
66790081Sobrien# Native compiler for the build machine and its switches.
668132727SkanCC_FOR_BUILD = @CC_FOR_BUILD@
669132727SkanBUILD_CFLAGS= @BUILD_CFLAGS@ -DGENERATOR_FILE
67090081Sobrien
67190081Sobrien# Native linker and preprocessor flags.  For x-fragment overrides.
672132727SkanBUILD_LDFLAGS=$(LDFLAGS)
673132727SkanBUILD_CPPFLAGS=$(ALL_CPPFLAGS)
67418334Speter
67518334Speter# Actual name to use when installing a native compiler.
676132727SkanGCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
677132727SkanGCC_TARGET_INSTALL_NAME := $(target_noncanonical)-$(shell echo gcc|sed '$(program_transform_name)')
678132727SkanCPP_INSTALL_NAME := $(shell echo cpp|sed '$(program_transform_name)')
679132727SkanPROTOIZE_INSTALL_NAME := $(shell echo protoize|sed '$(program_transform_name)')
680132727SkanUNPROTOIZE_INSTALL_NAME := $(shell echo unprotoize|sed '$(program_transform_name)')
681132727SkanGCOV_INSTALL_NAME := $(shell echo gcov|sed '$(program_transform_name)')
682132727SkanGCCBUG_INSTALL_NAME := $(shell echo gccbug|sed '$(program_transform_name)')
68318334Speter
68450448Sobrien# Setup the testing framework, if you have one
68550448SobrienEXPECT = `if [ -f $${rootme}/../expect/expect ] ; then \
68650448Sobrien            echo $${rootme}/../expect/expect ; \
68750448Sobrien          else echo expect ; fi`
68818334Speter
68950448SobrienRUNTEST = `if [ -f $${srcdir}/../dejagnu/runtest ] ; then \
69050448Sobrien	       echo $${srcdir}/../dejagnu/runtest ; \
69150448Sobrien	    else echo runtest; fi`
69250448SobrienRUNTESTFLAGS =
69350448Sobrien
69418334Speter# Extra symbols for fixproto to define when parsing headers.
69590081SobrienFIXPROTO_DEFINES =
69618334Speter
69718334Speter# Extra flags to use when compiling crt{begin,end}.o.
69890081SobrienCRTSTUFF_T_CFLAGS =
69918334Speter
70050448Sobrien# Extra flags to use when compiling [m]crt0.o.
70190081SobrienCRT0STUFF_T_CFLAGS =
70250448Sobrien
70350448Sobrien# "t" or nothing, for building multilibbed versions of, say, crtbegin.o.
70450448SobrienT =
70550448Sobrien
70690081Sobrien# Should T contain a `=', libgcc.mk will make T_TARGET, setting
70790081Sobrien# $(T_TARGET) to the name of the actual target filename.
70890081SobrienT_TARGET =
70990081SobrienT_TARGET : $(T_TARGET)
71090081Sobrien
711132727Skan# This should name the specs file that we're going to install.  Target
712132727Skan# Makefiles may override it and name another file to be generated from
713132727Skan# the built-in specs and installed as the default spec, as long as
714132727Skan# they also introduce a rule to generate a file name specs, to be used
715132727Skan# at build time.
716132727SkanSPECS = specs
717132727Skan
71818334Speter# End of variables for you to override.
71918334Speter
720132727Skan# GTM_H lists the config files that the generator files depend on,
721132727Skan# while TM_H lists the ones ordinary gcc files depend on, which
722132727Skan# includes several files generated by those generators.
723132727SkanBCONFIG_H = bconfig.h $(build_xm_file_list)
724132727SkanCONFIG_H  = config.h  $(host_xm_file_list)
725132727SkanTCONFIG_H = tconfig.h $(xm_file_list)
726132727SkanTM_P_H    = tm_p.h    $(tm_p_file_list)
727132727SkanGTM_H     = tm.h      $(tm_file_list)
728169699SkanTM_H      = $(GTM_H) insn-constants.h insn-flags.h options.h
72918334Speter
730169699Skan# Variables for version information.
731169699SkanBASEVER     := $(srcdir)/BASE-VER  # 4.x.y
732169699SkanDEVPHASE    := $(srcdir)/DEV-PHASE # experimental, prerelease, ""
733169699SkanDATESTAMP   := $(srcdir)/DATESTAMP # YYYYMMDD or empty
734169699Skan
735169699SkanBASEVER_c   := $(shell cat $(BASEVER))
736169699SkanDEVPHASE_c  := $(shell cat $(DEVPHASE))
737169699SkanDATESTAMP_c := $(shell cat $(DATESTAMP))
738169699Skan
739169699Skanversion     := $(BASEVER_c)
740169699Skan
741169699Skan# For use in version.c - double quoted strings, with appropriate
742169699Skan# surrounding punctuation and spaces, and with the datestamp and
743169699Skan# development phase collapsed to the empty string in release mode
744169699Skan# (i.e. if DEVPHASE_c is empty).  The space immediately after the
745169699Skan# comma in the $(if ...) constructs is significant - do not remove it.
746169699SkanBASEVER_s   := "\"$(BASEVER_c)\""
747169699SkanDEVPHASE_s  := "\"$(if $(DEVPHASE_c), ($(DEVPHASE_c)))\""
748169699SkanDATESTAMP_s := "\"$(if $(DEVPHASE_c), $(DATESTAMP_c))\""
749169699Skan
750169699Skan# Shorthand variables for dependency lists.
751169699SkanTARGET_H = $(TM_H) target.h insn-modes.h
752169699SkanMACHMODE_H = machmode.h mode-classes.def insn-modes.h
753169699SkanHOOKS_H = hooks.h $(MACHMODE_H)
754169699SkanHOSTHOOKS_DEF_H = hosthooks-def.h $(HOOKS_H)
755117404SkanLANGHOOKS_DEF_H = langhooks-def.h $(HOOKS_H)
75696273SobrienTARGET_DEF_H = target-def.h $(HOOKS_H)
757169699SkanRTL_BASE_H = rtl.h rtl.def $(MACHMODE_H) reg-notes.def insn-notes.def \
758169699Skan  input.h $(REAL_H) statistics.h vec.h
759169699SkanRTL_H = $(RTL_BASE_H) genrtl.h
76090081SobrienPARAMS_H = params.h params.def
761169699SkanBUILTINS_DEF = builtins.def sync-builtins.def omp-builtins.def
762169699SkanTREE_H = tree.h tree.def $(MACHMODE_H) tree-check.h $(BUILTINS_DEF) \
763169699Skan          input.h statistics.h vec.h treestruct.def $(HASHTAB_H)
764117404SkanBASIC_BLOCK_H = basic-block.h bitmap.h sbitmap.h varray.h $(PARTITION_H) \
765169699Skan          hard-reg-set.h cfghooks.h $(OBSTACK_H)
766169699SkanGCOV_IO_H = gcov-io.h gcov-iov.h auto-host.h
767169699SkanCOVERAGE_H = coverage.h $(GCOV_IO_H)
76890081SobrienDEMANGLE_H = $(srcdir)/../include/demangle.h
76990081SobrienRECOG_H = recog.h
770169699SkanALIAS_H = alias.h
771169699SkanEMIT_RTL_H = emit-rtl.h
772169699SkanFLAGS_H = flags.h options.h
773169699SkanFUNCTION_H = function.h $(TREE_H) $(HASHTAB_H)
774169699SkanEXPR_H = expr.h insn-config.h $(FUNCTION_H) $(RTL_H) $(FLAGS_H) $(TREE_H) $(MACHMODE_H) $(EMIT_RTL_H)
77590081SobrienOPTABS_H = optabs.h insn-codes.h
776169699SkanREGS_H = regs.h varray.h $(MACHMODE_H) $(OBSTACK_H) $(BASIC_BLOCK_H) $(FUNCTION_H)
777169699SkanRESOURCE_H = resource.h hard-reg-set.h
778169699SkanSCHED_INT_H = sched-int.h $(INSN_ATTR_H) $(BASIC_BLOCK_H) $(RTL_H)
779169699SkanINTEGRATE_H = integrate.h $(VARRAY_H)
780169699SkanCFGLAYOUT_H = cfglayout.h $(BASIC_BLOCK_H)
781169699SkanCFGLOOP_H = cfgloop.h $(BASIC_BLOCK_H) $(RTL_H)
782169699SkanIPA_UTILS_H = ipa-utils.h $(TREE_H) $(CGRAPH_H) 
783169699SkanIPA_REFERENCE_H = ipa-reference.h bitmap.h $(TREE_H)  
784169699SkanIPA_TYPE_ESCAPE_H = ipa-type-escape.h $(TREE_H)  
785169699SkanCGRAPH_H = cgraph.h $(TREE_H)
786169699SkanDF_H = df.h bitmap.h $(BASIC_BLOCK_H) alloc-pool.h
787169699SkanDDG_H = ddg.h sbitmap.h $(DF_H)
78890081SobrienGCC_H = gcc.h version.h
789132727SkanGGC_H = ggc.h gtype-desc.h
79090081SobrienTIMEVAR_H = timevar.h timevar.def
79190081SobrienINSN_ATTR_H = insn-attr.h $(srcdir)/insn-addr.h $(srcdir)/varray.h
792169699SkanC_COMMON_H = c-common.h $(SPLAY_TREE_H) $(CPPLIB_H) $(GGC_H)
793169699SkanC_PRAGMA_H = c-pragma.h $(CPPLIB_H)
794169699SkanC_TREE_H = c-tree.h $(C_COMMON_H) toplev.h $(DIAGNOSTIC_H)
795169699SkanSYSTEM_H = system.h hwint.h double-int.h $(srcdir)/../include/libiberty.h
79690081SobrienPREDICT_H = predict.h predict.def
797169699SkanCPPLIB_H = $(srcdir)/../libcpp/include/line-map.h \
798169699Skan	$(srcdir)/../libcpp/include/cpplib.h
799169699SkanDECNUM_H = $(DECNUM)/decContext.h $(DECNUM)/decDPD.h $(DECNUM)/decNumber.h \
800169699Skan	$(DECNUM)/decimal32.h $(DECNUM)/decimal64.h $(DECNUM)/decimal128.h
801169699SkanMKDEPS_H = $(srcdir)/../libcpp/include/mkdeps.h
802169699SkanSYMTAB_H = $(srcdir)/../libcpp/include/symtab.h
803169699SkanCPP_ID_DATA_H = $(CPPLIB_H) $(srcdir)/../libcpp/include/cpp-id-data.h
804169699SkanTREE_DUMP_H = tree-dump.h $(SPLAY_TREE_H)
805169699SkanTREE_GIMPLE_H = tree-gimple.h tree-iterator.h
806169699SkanTREE_FLOW_H = tree-flow.h tree-flow-inline.h tree-ssa-operands.h \
807169699Skan		bitmap.h $(BASIC_BLOCK_H) hard-reg-set.h $(TREE_GIMPLE_H) \
808169699Skan		$(HASHTAB_H) $(CGRAPH_H) $(IPA_REFERENCE_H)
809169699SkanTREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H) vecprim.h
810132727SkanPRETTY_PRINT_H = pretty-print.h input.h $(OBSTACK_H)
811169699SkanDIAGNOSTIC_H = diagnostic.h diagnostic.def $(PRETTY_PRINT_H) options.h
812169699SkanC_PRETTY_PRINT_H = c-pretty-print.h $(PRETTY_PRINT_H) $(C_COMMON_H) $(TREE_H)
813169699SkanSCEV_H = tree-scalar-evolution.h $(GGC_H) tree-chrec.h $(PARAMS_H)
814169699SkanLAMBDA_H = lambda.h $(TREE_H) vec.h $(GGC_H)
815169699SkanTREE_DATA_REF_H = tree-data-ref.h $(LAMBDA_H)
816169699SkanVARRAY_H = varray.h $(MACHMODE_H) $(SYSTEM_H) coretypes.h $(TM_H)
817169699SkanTREE_INLINE_H = tree-inline.h $(VARRAY_H) $(SPLAY_TREE_H)
818169699SkanREAL_H = real.h $(MACHMODE_H)
81990081Sobrien
82050448Sobrien#
82118334Speter# Now figure out from those variables how to compile and link.
82218334Speter
82390081Sobrien# IN_GCC distinguishes between code compiled into GCC itself and other
82490081Sobrien# programs built during a bootstrap.
825259563Spfg# autoconf inserts -DCROSS_DIRECTORY_STRUCTURE if we are building a
826259563Spfg# cross compiler which does not use the native headers and libraries.
82790081SobrienINTERNAL_CFLAGS = -DIN_GCC @CROSS@
82818334Speter
829132727Skan# This is the variable actually used when we compile. If you change this,
830132727Skan# you probably want to update BUILD_CFLAGS in configure.ac
831117404SkanALL_CFLAGS = $(X_CFLAGS) $(T_CFLAGS) \
832117404Skan  $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) $(XCFLAGS) @DEFS@
83318334Speter
834169699Skan# Likewise.  Put INCLUDES at the beginning: this way, if some autoconf macro
835169699Skan# puts -I options in CPPFLAGS, our include files in the srcdir will always
836169699Skan# win against random include files in /usr/include.
837169699SkanALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
83818334Speter
839169699Skan# Build and host support libraries.
84090081SobrienLIBIBERTY = ../libiberty/libiberty.a
841169699SkanBUILD_LIBIBERTY = $(build_libobjdir)/libiberty/libiberty.a
84218334Speter
84390081Sobrien# Dependencies on the intl and portability libraries.
844169699SkanLIBDEPS= $(CPPLIB) $(LIBIBERTY) $(LIBINTL_DEP) $(LIBICONV_DEP) $(LIBDECNUMBER)
84518334Speter
84618334Speter# Likewise, for use in the tools that must run on this machine
84718334Speter# even if we are cross-building GCC.
848132727SkanBUILD_LIBDEPS= $(BUILD_LIBIBERTY)
84918334Speter
85018334Speter# How to link with both our special library facilities
85118334Speter# and the system's installed libraries.
852169699SkanLIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER)
85318334Speter
854117404Skan# Any system libraries needed just for GNAT.
855117404SkanSYSLIBS = @GNAT_LIBEXC@
856117404Skan
857117404Skan# Libs needed (at present) just for jcf-dump.
858117404SkanLDEXP_LIB = @LDEXP_LIB@
859117404Skan
86018334Speter# Likewise, for use in the tools that must run on this machine
86118334Speter# even if we are cross-building GCC.
862132727SkanBUILD_LIBS = $(BUILD_LIBIBERTY)
86318334Speter
864169699SkanBUILD_RTL = build/rtl.o build/read-rtl.o build/ggc-none.o build/vec.o \
865169699Skan	    build/min-insn-modes.o build/gensupport.o build/print-rtl.o
866169699SkanBUILD_ERRORS = build/errors.o
86790081Sobrien
86818334Speter# Specify the directories to be searched for header files.
86918334Speter# Both . and srcdir are used, in that order,
87090081Sobrien# so that *config.h will be found in the compilation
87118334Speter# subdirectory rather than in the source directory.
87290081Sobrien# -I$(@D) and -I$(srcdir)/$(@D) cause the subdirectory of the file
87390081Sobrien# currently being compiled, in both source trees, to be examined as well.
874132727Skan# libintl.h will be found in ../intl if we are using the included libintl.
87590081SobrienINCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
876169699Skan	   -I$(srcdir)/../include @INCINTL@ \
877169699Skan	   $(CPPINC) $(GMPINC) $(DECNUMINC)
87818334Speter
87918334Speter.c.o:
880169699Skan	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
88118334Speter
88250448Sobrien#
883132727Skan# Support for additional languages (other than C).
884132727Skan# C can be supported this way too (leave for later).
88518334Speter
886132727SkanLANG_MAKEFRAGS = @all_lang_makefrags@
88750448SobrienLANG_MAKEFILES = @all_lang_makefiles@
88850448SobrienLANG_STAGESTUFF = @all_stagestuff@
88918334Speter
89018334Speter# Flags to pass to recursive makes.
89118334Speter# CC is set by configure.  Hosts without symlinks need special handling
89218334Speter# because we need CC="stage1/xgcc -Bstage1/" to work in the language
89318334Speter# subdirectories.
89418334Speter# ??? The choices here will need some experimenting with.
895132727Skan
896132727Skanexport AR_FOR_TARGET
897132727Skanexport AR_CREATE_FOR_TARGET
898132727Skanexport AR_FLAGS_FOR_TARGET
899132727Skanexport AR_EXTRACT_FOR_TARGET
900132727Skanexport AWK
901132727Skanexport DESTDIR
902132727Skanexport GCC_FOR_TARGET
903132727Skanexport INCLUDES
904132727Skanexport INSTALL_DATA
905132727Skanexport LIB1ASMSRC
906132727Skanexport LIBGCC2_CFLAGS
907169699Skanexport LIPO_FOR_TARGET
908132727Skanexport MACHMODE_H
909132727Skanexport NM_FOR_TARGET
910169699Skanexport STRIP_FOR_TARGET
911132727Skanexport RANLIB_FOR_TARGET
912132727Skanexport libsubdir
913132727Skanexport slibdir
914132727Skan
91552298SobrienORDINARY_FLAGS_TO_PASS = \
91618334Speter	"BISON=$(BISON)" \
91718334Speter	"BISONFLAGS=$(BISONFLAGS)" \
91890081Sobrien	"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
91918334Speter	"LDFLAGS=$(LDFLAGS)" \
92090081Sobrien	"FLEX=$(FLEX)" \
92190081Sobrien	"FLEXFLAGS=$(FLEXFLAGS)" \
92250448Sobrien	"LN=$(LN)" \
92350448Sobrien	"LN_S=$(LN_S)" \
92418334Speter	"MAKEINFO=$(MAKEINFO)" \
92518334Speter	"MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \
92690081Sobrien	"MAKEOVERRIDES=" \
92718334Speter	"SHELL=$(SHELL)" \
92818334Speter	"exeext=$(exeext)" \
92950448Sobrien	"build_exeext=$(build_exeext)" \
93018334Speter	"objext=$(objext)" \
93118334Speter	"exec_prefix=$(exec_prefix)" \
93218334Speter	"prefix=$(prefix)" \
93350448Sobrien	"local_prefix=$(local_prefix)" \
93452298Sobrien	"gxx_include_dir=$(gcc_gxx_include_dir)" \
93590081Sobrien	"build_tooldir=$(build_tooldir)" \
93652298Sobrien	"gcc_tooldir=$(gcc_tooldir)" \
93718334Speter	"bindir=$(bindir)" \
938132727Skan	"libexecsubdir=$(libsubdir)" \
93952298Sobrien	"datadir=$(datadir)" \
94052298Sobrien	"localedir=$(localedir)"
94190081SobrienFLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) "CC=@cc_set_by_configure@" \
94290081Sobrien	"STAGE_PREFIX=@stage_prefix_set_by_configure@"
94352298SobrienPREPEND_DOTDOT_TO_RELATIVE_PATHS = sed \
94452298Sobrien	-e 's|^ *[^ /][^ /]*/|%&|' \
94552298Sobrien	-e 's| -B| -B%|g' \
94652298Sobrien	-e 's|% *[^- /]|%&|g' \
94752298Sobrien	-e 's|%% *|../|g' \
94852298Sobrien	-e 's|%||g'
94952298SobrienSUBDIR_FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) \
95090081Sobrien	"CC=`echo @quoted_cc_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`" \
95190081Sobrien	"STAGE_PREFIX=`echo @quoted_stage_prefix_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`"
95250448Sobrien#
95318334Speter# Lists of files for various purposes.
95418334Speter
955169699Skan# All option source files
956169699SkanALL_OPT_FILES=$(lang_opt_files) $(extra_opt_files)
957169699Skan
95890081Sobrien# Target specific, C specific object file
95990081SobrienC_TARGET_OBJS=@c_target_objs@
96090081Sobrien
96190081Sobrien# Target specific, C++ specific object file
96290081SobrienCXX_TARGET_OBJS=@cxx_target_objs@
96390081Sobrien
964169699Skan# Object files for gcc driver.
965169699SkanGCC_OBJS = gcc.o opts-common.o gcc-options.o
966169699Skan
96750448Sobrien# Language-specific object files for C and Objective C.
96890081SobrienC_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
969117404Skan  c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \
970132727Skan  c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o \
971169699Skan  c-objc-common.o c-dump.o c-pch.o c-parser.o $(C_TARGET_OBJS) \
972169699Skan  c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o
97318334Speter
97418334Speter# Language-specific object files for C.
975169699SkanC_OBJS = c-lang.o stub-objc.o $(C_AND_OBJC_OBJS)
97618334Speter
97718334Speter# Language-independent object files.
978132727SkanOBJS-common = \
979169699Skan double-int.o tree-chrec.o tree-scalar-evolution.o tree-data-ref.o	   \
980169699Skan tree-cfg.o tree-dfa.o tree-eh.o tree-ssa.o tree-optimize.o tree-gimple.o  \
981169699Skan gimplify.o tree-pretty-print.o tree-into-ssa.o				   \
982169699Skan tree-outof-ssa.o tree-ssa-ccp.o tree-vn.o tree-ssa-uncprop.o		   \
983169699Skan tree-ssa-dce.o  tree-ssa-copy.o tree-nrv.o tree-ssa-copyrename.o	   \
984169699Skan tree-ssa-pre.o tree-ssa-live.o tree-ssa-operands.o tree-ssa-alias.o       \
985169699Skan tree-ssa-phiopt.o tree-ssa-forwprop.o tree-nested.o tree-ssa-dse.o	   \
986169699Skan tree-ssa-dom.o domwalk.o tree-tailcall.o gimple-low.o tree-iterator.o	   \
987169699Skan omp-low.o tree-phinodes.o tree-ssanames.o tree-sra.o tree-complex.o	   \
988169699Skan tree-vect-generic.o tree-ssa-loop.o tree-ssa-loop-niter.o		   \
989169699Skan tree-ssa-loop-manip.o tree-ssa-threadupdate.o tree-ssa-threadedge.o	   \
990169699Skan tree-vectorizer.o tree-vect-analyze.o tree-vect-transform.o		   \
991169699Skan tree-vect-patterns.o tree-ssa-loop-prefetch.o				   \
992169699Skan tree-ssa-loop-ivcanon.o tree-ssa-propagate.o tree-ssa-address.o	   \
993169699Skan tree-ssa-math-opts.o							   \
994169699Skan tree-ssa-loop-ivopts.o tree-if-conv.o tree-ssa-loop-unswitch.o		   \
995132727Skan alias.o bb-reorder.o bitmap.o builtins.o caller-save.o calls.o	  	   \
996117404Skan cfg.o cfganal.o cfgbuild.o cfgcleanup.o cfglayout.o cfgloop.o		   \
997132727Skan cfgloopanal.o cfgloopmanip.o loop-init.o loop-unswitch.o loop-unroll.o	   \
998132727Skan cfgrtl.o combine.o conflict.o convert.o coverage.o cse.o cselib.o 	   \
999169699Skan dbxout.o ddg.o tree-ssa-loop-ch.o loop-invariant.o tree-ssa-loop-im.o	   \
1000169699Skan debug.o df-core.o df-problems.o df-scan.o dfp.o diagnostic.o dojump.o     \
1001169699Skan dominance.o loop-doloop.o	   					   \
1002169699Skan dwarf2asm.o dwarf2out.o emit-rtl.o except.o explow.o loop-iv.o		   \
1003117404Skan expmed.o expr.o final.o flow.o fold-const.o function.o gcse.o		   \
1004117404Skan genrtl.o ggc-common.o global.o graph.o gtype-desc.o			   \
1005132727Skan haifa-sched.o hooks.o ifcvt.o insn-attrtab.o insn-emit.o insn-modes.o	   \
1006117404Skan insn-extract.o insn-opinit.o insn-output.o insn-peep.o insn-recog.o	   \
1007132727Skan integrate.o intl.o jump.o  langhooks.o lcm.o lists.o local-alloc.o  	   \
1008169699Skan mode-switching.o modulo-sched.o optabs.o options.o opts.o opts-common.o \
1009169699Skan params.o postreload.o postreload-gcse.o predict.o			   \
1010169699Skan insn-preds.o insn-automata.o pointer-set.o 			   	   \
1011169699Skan print-rtl.o print-tree.o profile.o value-prof.o var-tracking.o		   \
1012117404Skan real.o recog.o reg-stack.o regclass.o regmove.o regrename.o		   \
1013117404Skan reload.o reload1.o reorg.o resource.o rtl.o rtlanal.o rtl-error.o	   \
1014117404Skan sbitmap.o sched-deps.o sched-ebb.o sched-rgn.o sched-vis.o sdbout.o	   \
1015169699Skan see.o simplify-rtx.o sreal.o stmt.o stor-layout.o stringpool.o		   \
1016169699Skan struct-equiv.o targhooks.o timevar.o toplev.o tracer.o tree.o tree-dump.o \
1017169699Skan varasm.o varray.o vec.o version.o vmsdbgout.o xcoffout.o alloc-pool.o	   \
1018169699Skan et-forest.o cfghooks.o bt-load.o pretty-print.o $(GGC) web.o passes.o	   \
1019169699Skan tree-profile.o rtlhooks.o cfgexpand.o lambda-mat.o    			   \
1020169699Skan lambda-trans.o	lambda-code.o tree-loop-linear.o tree-ssa-sink.o 	   \
1021169699Skan tree-vrp.o tree-stdarg.o tree-cfgcleanup.o tree-ssa-reassoc.o		   \
1022169699Skan tree-ssa-structalias.o tree-object-size.o 				   \
1023169699Skan rtl-factoring.o
102490081Sobrien
1025169699Skan
1026132727SkanOBJS-md = $(out_object_file)
1027169699SkanOBJS-archive = $(EXTRA_OBJS) $(host_hook_obj) tree-inline.o		   \
1028169699Skan  cgraph.o cgraphunit.o tree-nomudflap.o ipa.o ipa-inline.o                \
1029169699Skan  ipa-utils.o ipa-reference.o ipa-pure-const.o ipa-type-escape.o           \
1030169699Skan  ipa-prop.o ipa-cp.o
1031132727Skan
1032132727SkanOBJS = $(OBJS-common) $(out_object_file) $(OBJS-archive)
1033132727Skan
1034132727SkanOBJS-onestep = libbackend.o $(OBJS-archive)
1035132727Skan
1036169699SkanBACKEND = main.o @TREEBROWSER@ libbackend.a $(CPPLIB) $(LIBDECNUMBER)
103790081Sobrien
1038169699Skan# Files to be copied after each stage in building.
1039169699SkanSTAGECOPYSTUFF = insn-flags.h insn-config.h insn-codes.h \
104018334Speter insn-output.c insn-recog.c insn-emit.c insn-extract.c insn-peep.c \
1041169699Skan insn-attr.h insn-attrtab.c insn-opinit.c insn-preds.c insn-constants.h \
1042169699Skan tm-preds.h tm-constrs.h \
1043169699Skan tree-check.h min-insn-modes.c insn-modes.c insn-modes.h \
1044169699Skan genrtl.c genrtl.h gt-*.h gtype-*.h gtype-desc.c gtyp-gen.h
1045169699Skan
1046169699Skan# Files to be moved away after each stage in building.
1047169699SkanSTAGEMOVESTUFF = *$(objext) s-* \
1048169699Skan xgcc$(exeext) cpp$(exeext) cc1$(exeext) cc1*-dummy$(exeext) $(EXTRA_PASSES) \
1049132727Skan $(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross$(exeext) \
1050117404Skan protoize$(exeext) unprotoize$(exeext) \
1051169699Skan $(SPECS) collect2$(exeext) \
1052132727Skan gcov-iov$(build_exeext) gcov$(exeext) gcov-dump$(exeext) \
1053169699Skan *.[0-9][0-9].* *.[si] *-checksum.c libbackend.a libgcc.mk \
105418334Speter $(LANG_STAGESTUFF)
105518334Speter
1056132727Skan# Defined in libgcc2.c, included only in the static library.
1057132727SkanLIB2FUNCS_ST = _eprintf __gcc_bcmp
105818334Speter
1059132727Skan# Defined in libgcov.c, included only in gcov library
1060169699SkanLIBGCOV = _gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta \
1061169699Skan    _gcov_fork _gcov_execl _gcov_execlp _gcov_execle \
1062169699Skan    _gcov_execv _gcov_execvp _gcov_execve \
1063169699Skan    _gcov_interval_profiler _gcov_pow2_profiler _gcov_one_value_profiler
106450448Sobrien
106550448SobrienFPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \
106650448Sobrien    _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \
106790081Sobrien    _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \
1068117404Skan    _sf_to_df _sf_to_tf _thenan_sf _sf_to_usi _usi_to_sf
106950448Sobrien
107050448SobrienDPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \
107150448Sobrien    _fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \
107290081Sobrien    _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \
1073117404Skan    _df_to_sf _df_to_tf _thenan_df _df_to_usi _usi_to_df
107450448Sobrien
1075117404SkanTPBIT_FUNCS = _pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf \
1076117404Skan    _fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf \
1077117404Skan    _lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf \
1078117404Skan    _tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf
1079117404Skan
1080169699SkanD32PBIT_FUNCS = _addsub_sd _div_sd _mul_sd _plus_sd _minus_sd \
1081169699Skan	_eq_sd _ne_sd _lt_sd _gt_sd _le_sd _ge_sd \
1082169699Skan	_sd_to_si _sd_to_di _sd_to_usi _sd_to_udi \
1083169699Skan	_si_to_sd _di_to_sd _usi_to_sd _udi_to_sd \
1084169699Skan	_sd_to_sf _sd_to_df _sd_to_xf _sf_to_sd _df_to_sd _xf_to_sd \
1085169699Skan	_sd_to_dd _sd_to_td _unord_sd _conv_sd
1086169699Skan
1087169699SkanD64PBIT_FUNCS = _addsub_dd _div_dd _mul_dd _plus_dd _minus_dd \
1088169699Skan	_eq_dd _ne_dd _lt_dd _gt_dd _le_dd _ge_dd \
1089169699Skan	_dd_to_si _dd_to_di _dd_to_usi _dd_to_udi \
1090169699Skan	_si_to_dd _di_to_dd _usi_to_dd _udi_to_dd \
1091169699Skan	_dd_to_sf _dd_to_df _dd_to_xf \
1092169699Skan	_sf_to_dd _df_to_dd _xf_to_dd \
1093169699Skan	_dd_to_sd _dd_to_td _unord_dd _conv_dd
1094169699Skan
1095169699SkanD128PBIT_FUNCS = _addsub_td _div_td _mul_td _plus_td _minus_td \
1096169699Skan	_eq_td _ne_td _lt_td _gt_td _le_td _ge_td \
1097169699Skan	_td_to_si _td_to_di _td_to_usi _td_to_udi \
1098169699Skan	_si_to_td _di_to_td _usi_to_td _udi_to_td \
1099169699Skan	_td_to_sf _td_to_df _td_to_xf \
1100169699Skan	_sf_to_td _df_to_td _xf_to_td \
1101169699Skan	_td_to_sd _td_to_dd _unord_td _conv_td
1102169699Skan
110390081Sobrien# These might cause a divide overflow trap and so are compiled with
110490081Sobrien# unwinder info.
110590081SobrienLIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4
110690081Sobrien
110750448Sobrien#
110818334Speter# Language makefile fragments.
110918334Speter
111018334Speter# The following targets define the interface between us and the languages.
111118334Speter#
111290081Sobrien# all.cross, start.encap, rest.encap,
1113169699Skan# install-common, install-info, install-man,
111490081Sobrien# uninstall,
1115132727Skan# mostlyclean, clean, distclean, maintainer-clean,
111618334Speter# stage1, stage2, stage3, stage4
111718334Speter#
1118132727Skan# Each language is linked in with a series of hooks.  The name of each
1119132727Skan# hooked is "lang.${target_name}" (eg: lang.info).  Configure computes
1120132727Skan# and adds these here.  We use double-colon rules for some of the hooks;
1121132727Skan# double-colon rules should be preferred for any new hooks.
112218334Speter
1123132727Skan# language hooks, generated by configure
112450448Sobrien@language_hooks@
112518334Speter
1126132727Skan# per-language makefile fragments
1127132727Skanifneq ($(LANG_MAKEFRAGS),)
1128132727Skaninclude $(LANG_MAKEFRAGS)
1129132727Skanendif
113018334Speter
1131132727Skan# target and host overrides must follow the per-language makefile fragments
1132132727Skan# so they can override or augment language-specific variables
1133132727Skan
1134132727Skan# target overrides
1135132727Skanifneq ($(tmake_file),)
1136132727Skaninclude $(tmake_file)
1137132727Skanendif
1138132727Skan
1139132727Skan# host overrides
1140132727Skanifneq ($(xmake_file),)
1141132727Skaninclude $(xmake_file)
1142132727Skanendif
1143132727Skan
114450448Sobrien#
114518334Speter
1146132727Skan# -----------------------------
1147132727Skan# Rebuilding this configuration
1148132727Skan# -----------------------------
114918334Speter
1150169699Skan# On the use of stamps:
1151169699Skan# Consider the example of tree-check.h. It is constructed with build/gencheck.
1152169699Skan# A simple rule to build tree-check.h would be
1153169699Skan# tree-check.h: build/gencheck$(build_exeext)
1154169699Skan#	$(RUN_GEN) build/gencheck$(build_exeext) > tree-check.h
1155169699Skan#
1156169699Skan# but tree-check.h doesn't change every time gencheck changes. It would the
1157169699Skan# nice if targets that depend on tree-check.h wouldn't be rebuild
1158169699Skan# unnecessarily when tree-check.h is unchanged. To make this, tree-check.h
1159169699Skan# must not be overwritten with a identical copy. One solution is to use a
1160169699Skan# temporary file
1161169699Skan# tree-check.h: build/gencheck$(build_exeext)
1162169699Skan#	$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
1163169699Skan#	$(SHELL) $(srcdir)/../move-if-change tmp-check.h tree-check.h
1164169699Skan#
1165169699Skan# This solution has a different problem. Since the time stamp of tree-check.h
1166169699Skan# is unchanged, make will try to update tree-check.h every time it runs.
1167169699Skan# To prevent this, one can add a stamp
1168169699Skan# tree-check.h: s-check
1169169699Skan# s-check : build/gencheck$(build_exeext)
1170169699Skan#	$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
1171169699Skan#	$(SHELL) $(srcdir)/../move-if-change tmp-check.h tree-check.h
1172169699Skan#	$(STAMP) s-check
1173169699Skan#
1174169699Skan# The problem with this solution is that make thinks that tree-check.h is
1175169699Skan# always unchanged. Make must be deceived into thinking that tree-check.h is
1176169699Skan# rebuild by the "tree-check.h: s-check" rule. To do this, add a dummy command:
1177169699Skan# tree-check.h: s-check; @true
1178169699Skan# s-check : build/gencheck$(build_exeext)
1179169699Skan#	$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
1180169699Skan#	$(SHELL) $(srcdir)/../move-if-change tmp-check.h tree-check.h
1181169699Skan#	$(STAMP) s-check
1182169699Skan#
1183169699Skan# This is what is done in this makefile. Note that mkconfig.sh has a
1184169699Skan# move-if-change built-in
1185169699Skan
1186169699SkanMakefile: config.status $(srcdir)/Makefile.in $(LANG_MAKEFRAGS)
1187132727Skan	LANGUAGES="$(CONFIG_LANGUAGES)" \
1188132727Skan	CONFIG_HEADERS= \
1189132727Skan	CONFIG_SHELL="$(SHELL)" \
1190132727Skan	CONFIG_FILES=$@ $(SHELL) config.status
1191132727Skan
119290081Sobrienconfig.h: cs-config.h ; @true
1193132727Skanbconfig.h: cs-bconfig.h ; @true
119490081Sobrientconfig.h: cs-tconfig.h ; @true
1195132727Skantm.h: cs-tm.h ; @true
119690081Sobrientm_p.h: cs-tm_p.h ; @true
119750448Sobrien
119890081Sobriencs-config.h: Makefile
1199132727Skan	TARGET_CPU_DEFAULT="" \
1200132727Skan	HEADERS="$(host_xm_include_list)" DEFINES="$(host_xm_defines)" \
120190081Sobrien	$(SHELL) $(srcdir)/mkconfig.sh config.h
120290081Sobrien
1203132727Skancs-bconfig.h: Makefile
1204132727Skan	TARGET_CPU_DEFAULT="" \
1205132727Skan	HEADERS="$(build_xm_include_list)" DEFINES="$(build_xm_defines)" \
1206132727Skan	$(SHELL) $(srcdir)/mkconfig.sh bconfig.h
120790081Sobrien
120890081Sobriencs-tconfig.h: Makefile
120990081Sobrien	TARGET_CPU_DEFAULT="" \
1210169699Skan	HEADERS="$(xm_include_list)" DEFINES="USED_FOR_TARGET $(xm_defines)" \
121190081Sobrien	$(SHELL) $(srcdir)/mkconfig.sh tconfig.h
121290081Sobrien
1213132727Skancs-tm.h: Makefile
1214132727Skan	TARGET_CPU_DEFAULT="$(target_cpu_default)" \
1215132727Skan	HEADERS="$(tm_include_list)" DEFINES="$(tm_defines)" \
1216132727Skan	$(SHELL) $(srcdir)/mkconfig.sh tm.h
1217132727Skan
121890081Sobriencs-tm_p.h: Makefile
1219132727Skan	TARGET_CPU_DEFAULT="" \
1220132727Skan	HEADERS="$(tm_p_include_list)" DEFINES="" \
122190081Sobrien	$(SHELL) $(srcdir)/mkconfig.sh tm_p.h
122290081Sobrien
1223132727Skan# Don't automatically run autoconf, since configure.ac might be accidentally
122490081Sobrien# newer than configure.  Also, this writes into the source directory which
122590081Sobrien# might be on a read-only file system.  If configured for maintainer mode
122690081Sobrien# then do allow autoconf to be run.
122790081Sobrien
1228169699Skan$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/aclocal.m4 \
1229169699Skan  $(srcdir)/acinclude.m4
123090081Sobrien	(cd $(srcdir) && autoconf)
123190081Sobrien
123290081Sobriengccbug:	$(srcdir)/gccbug.in
123390081Sobrien	CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status
123490081Sobrien
123590081Sobrienmklibgcc: $(srcdir)/mklibgcc.in
123690081Sobrien	CONFIG_FILES=mklibgcc CONFIG_HEADERS= ./config.status
123790081Sobrien
123850448Sobrien# cstamp-h.in controls rebuilding of config.in.
123950448Sobrien# It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't
124050448Sobrien# delete it.  A stamp file is needed as autoheader won't update the file if
124150448Sobrien# nothing has changed.
124250448Sobrien# It remains in the source directory and is part of the distribution.
124350448Sobrien# This follows what is done in shellutils, fileutils, etc.
124450448Sobrien# "echo timestamp" is used instead of touch to be consistent with other
124550448Sobrien# packages that use autoconf (??? perhaps also to avoid problems with patch?).
124650448Sobrien# ??? Newer versions have a maintainer mode that may be useful here.
124790081Sobrien
124890081Sobrien# Don't run autoheader automatically either.
124990081Sobrien# Only run it if maintainer mode is enabled.
125090081Sobrien@MAINT@ $(srcdir)/config.in: $(srcdir)/cstamp-h.in
1251132727Skan@MAINT@ $(srcdir)/cstamp-h.in: $(srcdir)/configure.ac
125290081Sobrien@MAINT@	(cd $(srcdir) && autoheader)
125390081Sobrien@MAINT@	@rm -f $(srcdir)/cstamp-h.in
125490081Sobrien@MAINT@	echo timestamp > $(srcdir)/cstamp-h.in
125550448Sobrienauto-host.h: cstamp-h ; @true
125650448Sobriencstamp-h: config.in config.status
1257132727Skan	CONFIG_HEADERS=auto-host.h:config.in \
1258132727Skan	CONFIG_FILES= \
1259132727Skan	LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status
126050448Sobrien
126150448Sobrien# Really, really stupid make features, such as SUN's KEEP_STATE, may force
126250448Sobrien# a target to build even if it is up-to-date.  So we must verify that
126350448Sobrien# config.status does not exist before failing.
1264169699Skanconfig.status: $(srcdir)/configure $(srcdir)/config.gcc
126550448Sobrien	@if [ ! -f config.status ] ; then \
126690081Sobrien	  echo You must configure gcc.  Look at http://gcc.gnu.org/install/ for details.; \
126750448Sobrien	  false; \
126850448Sobrien	else \
126952298Sobrien	  LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status --recheck; \
127050448Sobrien	fi
127150448Sobrien
1272132727Skan# --------
1273132727Skan# UNSORTED
1274132727Skan# --------
1275132727Skan
127652298Sobrienall.internal: start.encap rest.encap doc
127718334Speter# This is what to compile if making a cross-compiler.
1278169699Skanall.cross: native gcc-cross$(exeext) cpp$(exeext) specs \
1279169699Skan	$(LIBGCC) $(EXTRA_PARTS) lang.all.cross doc @GENINSRC@ srcextra
128018334Speter# This is what must be made before installing GCC and converting libraries.
128190081Sobrienstart.encap: native xgcc$(exeext) cpp$(exeext) specs \
1282132727Skan	xlimits.h lang.start.encap @GENINSRC@ srcextra
128318334Speter# These can't be made until after GCC can run.
128490081Sobrienrest.encap: $(STMP_FIXPROTO) $(LIBGCC) $(EXTRA_PARTS) lang.rest.encap
128518334Speter# This is what is made with the host's compiler
128618334Speter# whether making a cross compiler or not.
1287132727Skannative: config.status auto-host.h build-@POSUB@ $(LANGUAGES) \
1288169699Skan	$(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(COLLECT2)
128918334Speter
129018334Speter# Define the names for selecting languages in LANGUAGES.
1291169699Skanc: cc1$(exeext)
129218334Speter
129318334Speter# Tell GNU make these are phony targets.
1294169699Skan.PHONY: c proto
129518334Speter
129618334Speter# On the target machine, finish building a cross compiler.
129718334Speter# This does the things that can't be done on the host machine.
129852298Sobrienrest.cross: $(LIBGCC) specs
129918334Speter
130018334Speter# Recompile all the language-independent object files.
130118334Speter# This is used only if the user explicitly asks for it.
130290081Sobriencompilations: $(BACKEND)
130318334Speter
1304169699Skan# This archive is strictly for the host.
1305132727Skanlibbackend.a: $(OBJS@onestep@)
130690081Sobrien	-rm -rf libbackend.a
1307243933Seadler	$(AR) $(ARFLAGS) libbackend.a $(OBJS@onestep@)
1308169699Skan	-$(RANLIB) $(RANLIB_FLAGS) libbackend.a
130918334Speter
131018334Speter# We call this executable `xgcc' rather than `gcc'
131118334Speter# to avoid confusion if the current directory is in the path
131218334Speter# and CC is `gcc'.  It is renamed to `gcc' when it is installed.
1313169699Skanxgcc$(exeext): $(GCC_OBJS) gccspec.o version.o intl.o prefix.o \
131452298Sobrien   version.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
1315169699Skan	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) gccspec.o \
1316169699Skan	  intl.o prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS)
131718334Speter
131890081Sobrien# cpp is to cpp0 as gcc is to cc1.
131952298Sobrien# The only difference from xgcc is that it's linked with cppspec.o
132052298Sobrien# instead of gccspec.o.
1321169699Skancpp$(exeext): $(GCC_OBJS) cppspec.o version.o intl.o prefix.o \
132252298Sobrien   version.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
1323169699Skan	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) cppspec.o \
1324169699Skan	  intl.o prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS)
132552298Sobrien
1326169699Skan# Create links to binutils, especially for in-tree builds, to make -B.
1327169699Skan# use them.  We need hard links so that directories can be shuffled
1328169699Skan# during toplevel bootstrap.
1329169699Skan# Go through an additional indirection, because the file we create
1330169699Skan# can be either `sometool' (if it is a script) or `sometool$(exeext)'
1331169699Skan# (if it is a hard link).
1332169699Skanstamp-as: $(ORIGINAL_AS_FOR_TARGET)
1333169699Skan	@echo creating as; \
1334169699Skan	case "$(ORIGINAL_AS_FOR_TARGET)" in \
1335169699Skan	  ./as) ;; \
1336169699Skan	  ../*) \
1337169699Skan	     rm -f as$(exeext); \
1338169699Skan	     echo $(LN) $< as$(exeext); \
1339169699Skan	     $(LN) $< as$(exeext) || cp $< as$(exeext) ;; \
1340169699Skan	  *) \
1341169699Skan	     rm -f as; \
1342169699Skan	     echo '#!$(SHELL)' > as; \
1343169699Skan	     echo 'exec $(ORIGINAL_AS_FOR_TARGET) "$$@"' >> as ; \
1344169699Skan	     chmod +x as ;; \
1345169699Skan	esac
1346169699Skan	echo timestamp > $@
1347169699Skan
1348169699Skanstamp-collect-ld: $(ORIGINAL_LD_FOR_TARGET)
1349169699Skan	@echo creating collect-ld; \
1350169699Skan	case "$(ORIGINAL_LD_FOR_TARGET)" in \
1351169699Skan	  ./collect-ld) ;; \
1352169699Skan	  ../*) \
1353169699Skan	     rm -f collect-ld$(exeext); \
1354169699Skan	     echo $(LN) $< collect-ld$(exeext); \
1355169699Skan	     $(LN) $< collect-ld$(exeext) || cp $< collect-ld$(exeext) ;; \
1356169699Skan	  *) \
1357169699Skan	     rm -f collect-ld$(exeext); \
1358169699Skan	     echo '#!$(SHELL)' > collect-ld; \
1359169699Skan	     echo 'exec $(ORIGINAL_LD_FOR_TARGET) "$$@"' >> collect-ld ; \
1360169699Skan	     chmod +x collect-ld ;; \
1361169699Skan	esac
1362169699Skan	echo timestamp > $@
1363169699Skan
1364169699Skanstamp-nm: $(ORIGINAL_NM_FOR_TARGET)
1365169699Skan	@echo creating nm; \
1366169699Skan	case "$(ORIGINAL_NM_FOR_TARGET)" in \
1367169699Skan	  ./nm) ;; \
1368169699Skan	  ../*) \
1369169699Skan	     rm -f nm$(exeext); \
1370169699Skan	     echo $(LN) $< nm$(exeext); \
1371169699Skan	     $(LN) $< nm$(exeext) || cp $< nm$(exeext) ;; \
1372169699Skan	  *) \
1373169699Skan	     rm -f nm$(exeext); \
1374169699Skan	     echo '#!$(SHELL)' > nm; \
1375169699Skan	     echo 'exec $(ORIGINAL_NM_FOR_TARGET) "$$@"' >> nm ; \
1376169699Skan	     chmod +x nm ;; \
1377169699Skan	esac
1378169699Skan	echo timestamp > $@
1379169699Skan
138018334Speter# Dump a specs file to make -B./ read these specs over installed ones.
1381132727Skan$(SPECS): xgcc$(exeext)
138218334Speter	$(GCC_FOR_TARGET) -dumpspecs > tmp-specs
1383132727Skan	mv tmp-specs $(SPECS)
138418334Speter
138518334Speter# We do want to create an executable named `xgcc', so we can use it to
138618334Speter# compile libgcc2.a.
138718334Speter# Also create gcc-cross, so that install-common will install properly.
1388169699Skangcc-cross$(exeext): xgcc$(exeext)
138918334Speter	cp xgcc$(exeext) gcc-cross$(exeext)
139018334Speter
1391169699Skandummy-checksum.o : dummy-checksum.c
139218334Speter
1393169699Skancc1-dummy$(exeext): $(C_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
1394169699Skan	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) dummy-checksum.o \
1395169699Skan	  $(BACKEND) $(LIBS)
1396169699Skan
1397169699Skancc1-checksum.c : cc1-dummy$(exeext) build/genchecksum$(build_exeext)
1398169699Skan	build/genchecksum$(build_exeext) cc1-dummy$(exeext) > $@
1399169699Skan
1400169699Skancc1-checksum.o : cc1-checksum.c
1401169699Skan
1402169699Skancc1$(exeext): $(C_OBJS) cc1-checksum.o $(BACKEND) $(LIBDEPS)
1403169699Skan	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) cc1-checksum.o \
1404169699Skan	  $(BACKEND) $(LIBS)
1405169699Skan
140618334Speter# Build the version of limits.h that we will install.
140718334Speterxlimits.h: glimits.h limitx.h limity.h
140818334Speter	if $(LIMITS_H_TEST) ; then \
140918334Speter	  cat $(srcdir)/limitx.h $(srcdir)/glimits.h $(srcdir)/limity.h > tmp-xlimits.h; \
141018334Speter	else \
141118334Speter	  cat $(srcdir)/glimits.h > tmp-xlimits.h; \
141218334Speter	fi
141318334Speter	mv tmp-xlimits.h xlimits.h
141450448Sobrien#
141518334Speter# Build libgcc.a.
141618334Speter
141790081SobrienLIB2ADD = $(LIB2FUNCS_EXTRA)
141890081SobrienLIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA)
141918334Speter
1420169699Skanlibgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) specs \
1421169699Skan		xgcc$(exeext) stamp-as stamp-collect-ld stamp-nm
142290081Sobrien	objext='$(objext)' \
142390081Sobrien	LIB1ASMFUNCS='$(LIB1ASMFUNCS)' \
142490081Sobrien	LIB2FUNCS_ST='$(LIB2FUNCS_ST)' \
1425169699Skan	LIB2FUNCS_EXCLUDE='$(LIB2FUNCS_EXCLUDE)' \
1426132727Skan	LIBGCOV='$(LIBGCOV)' \
142790081Sobrien	LIB2ADD='$(LIB2ADD)' \
142890081Sobrien	LIB2ADD_ST='$(LIB2ADD_ST)' \
142990081Sobrien	LIB2ADDEH='$(LIB2ADDEH)' \
1430146906Skan	LIB2ADDEHSTATIC='$(LIB2ADDEHSTATIC)' \
1431146906Skan	LIB2ADDEHSHARED='$(LIB2ADDEHSHARED)' \
143290081Sobrien	LIB2ADDEHDEP='$(LIB2ADDEHDEP)' \
1433169699Skan	LIB2_SIDITI_CONV_FUNCS='$(LIB2_SIDITI_CONV_FUNCS)' \
1434146906Skan	LIBUNWIND='$(LIBUNWIND)' \
1435146906Skan	LIBUNWINDDEP='$(LIBUNWINDDEP)' \
1436146906Skan	SHLIBUNWIND_LINK='$(SHLIBUNWIND_LINK)' \
1437146906Skan	SHLIBUNWIND_INSTALL='$(SHLIBUNWIND_INSTALL)' \
143890081Sobrien	FPBIT='$(FPBIT)' \
143990081Sobrien	FPBIT_FUNCS='$(FPBIT_FUNCS)' \
144090081Sobrien	LIB2_DIVMOD_FUNCS='$(LIB2_DIVMOD_FUNCS)' \
144190081Sobrien	DPBIT='$(DPBIT)' \
144290081Sobrien	DPBIT_FUNCS='$(DPBIT_FUNCS)' \
1443117404Skan	TPBIT='$(TPBIT)' \
1444117404Skan	TPBIT_FUNCS='$(TPBIT_FUNCS)' \
1445169699Skan	DFP_ENABLE='$(DFP_ENABLE)' \
1446169699Skan	DFP_CFLAGS='$(DFP_CFLAGS)' \
1447169699Skan	D32PBIT='$(D32PBIT)' \
1448169699Skan	D32PBIT_FUNCS='$(D32PBIT_FUNCS)' \
1449169699Skan	D64PBIT='$(D64PBIT)' \
1450169699Skan	D64PBIT_FUNCS='$(D64PBIT_FUNCS)' \
1451169699Skan	D128PBIT='$(D128PBIT)' \
1452169699Skan	D128PBIT_FUNCS='$(D128PBIT_FUNCS)' \
145390081Sobrien	MULTILIBS=`$(GCC_FOR_TARGET) --print-multi-lib` \
145490081Sobrien	EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \
145590081Sobrien	SHLIB_LINK='$(SHLIB_LINK)' \
145690081Sobrien	SHLIB_INSTALL='$(SHLIB_INSTALL)' \
145790081Sobrien	SHLIB_EXT='$(SHLIB_EXT)' \
145890081Sobrien	SHLIB_MULTILIB='$(SHLIB_MULTILIB)' \
145990081Sobrien	SHLIB_MKMAP='$(SHLIB_MKMAP)' \
146096273Sobrien	SHLIB_MKMAP_OPTS='$(SHLIB_MKMAP_OPTS)' \
146190081Sobrien	SHLIB_MAPFILES='$(SHLIB_MAPFILES)' \
146290081Sobrien	SHLIB_NM_FLAGS='$(SHLIB_NM_FLAGS)' \
1463104764Skan	MULTILIB_OSDIRNAMES='$(MULTILIB_OSDIRNAMES)' \
1464169699Skan	ASM_HIDDEN_OP='$(ASM_HIDDEN_OP)' \
1465169699Skan	GCC_FOR_TARGET='$(GCC_FOR_TARGET)' \
1466169699Skan	mkinstalldirs='$(mkinstalldirs)' \
146790081Sobrien	  $(SHELL) mklibgcc > tmp-libgcc.mk
146890081Sobrien	mv tmp-libgcc.mk libgcc.mk
146918334Speter
147090081Sobrien# All the things that might cause us to want to recompile bits of libgcc.
1471169699SkanLIBGCC_DEPS = $(GCC_PASSES) stmp-int-hdrs $(STMP_FIXPROTO) \
1472132727Skan	libgcc.mk $(srcdir)/libgcc2.c $(srcdir)/libgcov.c $(TCONFIG_H) \
1473169699Skan	$(MACHMODE_H) longlong.h gbl-ctors.h config.status $(srcdir)/libgcc2.h \
1474117404Skan	tsystem.h $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \
1475169699Skan	config/dfp-bit.h config/dfp-bit.c \
1476169699Skan	$(LIB2ADD_ST) $(LIB2ADDEH) $(LIB2ADDEHDEP) $(EXTRA_PARTS) \
1477169699Skan	$(srcdir)/config/$(LIB1ASMSRC) \
1478169699Skan	$(srcdir)/gcov-io.h $(srcdir)/gcov-io.c gcov-iov.h $(SFP_MACHINE)
147918334Speter
1480132727Skanlibgcov.a: libgcc.a; @true
1481132727Skan
148290081Sobrienlibgcc.a: $(LIBGCC_DEPS)
1483132727Skan	$(MAKE) \
148490081Sobrien	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
1485132727Skan	  CONFIG_H="$(TCONFIG_H)" TM_H="$(TM_H)" \
148690081Sobrien	  INCLUDES="$(INCLUDES)" \
148790081Sobrien	  MAKEOVERRIDES= \
148890081Sobrien	  -f libgcc.mk all
148918334Speter
149018334Speter# Use the genmultilib shell script to generate the information the gcc
149118334Speter# driver program needs to select the library directory based on the
149218334Speter# switches.
149350448Sobrienmultilib.h: s-mlib; @true
149450448Sobriens-mlib: $(srcdir)/genmultilib Makefile
1495104764Skan	if test @enable_multilib@ = yes \
1496104764Skan	   || test -n "$(MULTILIB_OSDIRNAMES)"; then \
149796273Sobrien	  $(SHELL) $(srcdir)/genmultilib \
149896273Sobrien	    "$(MULTILIB_OPTIONS)" \
149996273Sobrien	    "$(MULTILIB_DIRNAMES)" \
150096273Sobrien	    "$(MULTILIB_MATCHES)" \
150196273Sobrien	    "$(MULTILIB_EXCEPTIONS)" \
150296273Sobrien	    "$(MULTILIB_EXTRA_OPTS)" \
150396273Sobrien	    "$(MULTILIB_EXCLUSIONS)" \
1504104764Skan	    "$(MULTILIB_OSDIRNAMES)" \
1505104764Skan	    "@enable_multilib@" \
150696273Sobrien	    > tmp-mlib.h; \
150796273Sobrien	else \
1508104764Skan	  $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' '' no \
1509104764Skan	    > tmp-mlib.h; \
151096273Sobrien	fi
1511169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-mlib.h multilib.h
151290081Sobrien	$(STAMP) s-mlib
151318334Speter
151418334Speter# Build multiple copies of libgcc.a, one for each target switch.
151590081Sobrienstmp-multilib: $(LIBGCC_DEPS)
1516132727Skan	$(MAKE) \
151790081Sobrien	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
1518132727Skan	  CONFIG_H="$(CONFIG_H)" \
151990081Sobrien	  MAKEOVERRIDES= \
152090081Sobrien	  -f libgcc.mk all
152190081Sobrien	$(STAMP) stmp-multilib
152218334Speter
152318334Speter# Compile two additional files that are linked with every program
152418334Speter# linked using GCC on systems using COFF or ELF, for the sake of C++
152518334Speter# constructors.
152690081Sobrien$(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1527132727Skan  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
152890081Sobrien	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
1529169699Skan	  -c $(srcdir)/crtstuff.c -DCRT_BEGIN \
153090081Sobrien	  -o $(T)crtbegin$(objext)
153118334Speter
153290081Sobrien$(T)crtend.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1533132727Skan  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
153490081Sobrien	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
1535169699Skan	  -c $(srcdir)/crtstuff.c -DCRT_END \
153690081Sobrien	  -o $(T)crtend$(objext)
153718334Speter
153890081Sobrien# These are versions of crtbegin and crtend for shared libraries.
153990081Sobrien$(T)crtbeginS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1540132727Skan  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
154190081Sobrien	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
1542169699Skan	  -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O \
154390081Sobrien	  -o $(T)crtbeginS$(objext)
154418334Speter
154590081Sobrien$(T)crtendS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1546132727Skan  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
154790081Sobrien	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
1548169699Skan	  -c $(srcdir)/crtstuff.c -DCRT_END -DCRTSTUFFS_O \
154990081Sobrien	  -o $(T)crtendS$(objext)
155050448Sobrien
155190081Sobrien# This is a version of crtbegin for -static links.
155290081Sobrien$(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
1553132727Skan  gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
155490081Sobrien	$(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
1555169699Skan	  -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \
155690081Sobrien	  -o $(T)crtbeginT$(objext)
155790081Sobrien
155890081Sobrien# Compile the start modules crt0.o and mcrt0.o that are linked with
155990081Sobrien# every program
156050448Sobriencrt0.o: s-crt0 ; @true
156150448Sobrienmcrt0.o: s-crt0; @true
156250448Sobrien
156350448Sobriens-crt0:	$(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H)
156450448Sobrien	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
156550448Sobrien	  -o crt0.o -c $(CRT0_S)
156650448Sobrien	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
156750448Sobrien	  -o mcrt0.o -c $(MCRT0_S)
156890081Sobrien	$(STAMP) s-crt0
156950448Sobrien#
157018334Speter# Compiling object files from source files.
157118334Speter
157218334Speter# Note that dependencies on obstack.h are not written
157318334Speter# because that file is not part of GCC.
157418334Speter
157518334Speter# C language specific files.
157618334Speter
1577132727Skanc-errors.o: c-errors.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1578169699Skan    $(C_TREE_H) $(FLAGS_H) $(DIAGNOSTIC_H) $(TM_P_H)
1579169699Skanc-parser.o : c-parser.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1580169699Skan    $(GGC_H) $(TIMEVAR_H) $(C_TREE_H) input.h $(FLAGS_H) toplev.h output.h \
1581169699Skan    $(CPPLIB_H) gt-c-parser.h langhooks.h $(C_COMMON_H) $(C_PRAGMA_H) \
1582169699Skan    vec.h $(TARGET_H)
158390081Sobrien
1584132727Skansrcextra: gcc.srcextra lang.srcextra
158590081Sobrien
1586169699Skangcc.srcextra: gengtype-lex.c gengtype-yacc.c gengtype-yacc.h
1587132727Skan	-cp -p $^ $(srcdir)
1588132727Skan
1589132727Skanc-incpath.o: c-incpath.c c-incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
1590169699Skan		intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
1591169699Skan		$(MACHMODE_H)
1592132727Skan
1593132727Skanc-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1594169699Skan    $(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) output.h \
1595169699Skan    $(EXPR_H) debug.h toplev.h intl.h $(TM_P_H) $(TREE_INLINE_H) $(TIMEVAR_H) \
1596169699Skan    opts.h $(C_PRAGMA_H) gt-c-decl.h $(CGRAPH_H) $(HASHTAB_H) libfuncs.h \
1597169699Skan    except.h $(LANGHOOKS_DEF_H) $(TREE_DUMP_H) $(C_COMMON_H) $(CPPLIB_H) \
1598169699Skan    $(DIAGNOSTIC_H) input.h langhooks.h $(TREE_GIMPLE_H) tree-mudflap.h  \
1599169699Skan    pointer-set.h
1600169699Skanc-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1601169699Skan    $(TREE_H) $(C_TREE_H) $(TARGET_H) $(FLAGS_H) intl.h output.h $(EXPR_H) \
1602169699Skan    $(RTL_H) toplev.h $(TM_P_H) langhooks.h $(GGC_H) $(TREE_FLOW_H) \
1603169699Skan    $(TREE_GIMPLE_H) tree-iterator.h
1604132727Skanc-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1605169699Skan    $(C_TREE_H) $(DIAGNOSTIC_H) \
1606169699Skan    $(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-c.h \
1607169699Skan    c-objc-common.h $(C_PRAGMA_H) c-common.def $(TREE_INLINE_H)
1608132727Skanstub-objc.o : stub-objc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
1609169699Skan    $(C_COMMON_H)
1610132727Skanc-lex.o : c-lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1611169699Skan    $(RTL_H) debug.h $(C_TREE_H) $(C_COMMON_H) $(REAL_H) $(SPLAY_TREE_H) \
1612169699Skan    $(C_PRAGMA_H) input.h intl.h $(FLAGS_H) toplev.h output.h \
1613169699Skan    $(CPPLIB_H) $(TIMEVAR_H) $(TM_P_H)
1614132727Skanc-ppoutput.o : c-ppoutput.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1615169699Skan    $(C_COMMON_H) $(TREE_H) $(CPPLIB_H) $(srcdir)/../libcpp/internal.h \
1616169699Skan    $(C_PRAGMA_H)
1617169699Skanc-objc-common.o : c-objc-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1618169699Skan    $(TM_H) $(TREE_H) $(C_TREE_H) $(RTL_H) insn-config.h $(INTEGRATE_H) \
1619169699Skan    $(FUNCTION_H) $(FLAGS_H) toplev.h $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(VARRAY_H) \
1620169699Skan    langhooks.h $(GGC_H) $(TARGET_H) $(C_PRETTY_PRINT_H) c-objc-common.h \
1621169699Skan    tree-mudflap.h
1622132727Skanc-aux-info.o : c-aux-info.c  $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1623169699Skan    $(C_TREE_H) $(FLAGS_H) toplev.h
1624169699Skanc-convert.o : c-convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1625169699Skan    $(TREE_H) $(FLAGS_H) toplev.h $(C_COMMON_H) convert.h $(C_TREE_H) \
1626169699Skan    langhooks.h $(TARGET_H)
1627169699Skanc-pragma.o: c-pragma.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
1628169699Skan    $(TREE_H) $(FUNCTION_H) $(C_PRAGMA_H) toplev.h output.h $(GGC_H) $(TM_P_H) \
1629169699Skan    $(C_COMMON_H) $(TARGET_H) gt-c-pragma.h $(CPPLIB_H) $(FLAGS_H)
1630169699Skangraph.o: graph.c $(SYSTEM_H) coretypes.h $(TM_H) toplev.h $(FLAGS_H) output.h \
1631169699Skan    $(RTL_H) $(FUNCTION_H) hard-reg-set.h $(BASIC_BLOCK_H) graph.h $(OBSTACK_H)
1632169699Skansbitmap.o: sbitmap.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
1633169699Skan    $(FLAGS_H) hard-reg-set.h $(BASIC_BLOCK_H) $(OBSTACK_H)
163418334Speter
1635117404SkanCOLLECT2_OBJS = collect2.o tlink.o intl.o version.o
163690081SobrienCOLLECT2_LIBS = @COLLECT2_LIBS@
163752298Sobriencollect2$(exeext): $(COLLECT2_OBJS) $(LIBDEPS)
163818334Speter# Don't try modifying collect2 (aka ld) in place--it might be linking this.
163990081Sobrien	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o T$@ \
164090081Sobrien		$(COLLECT2_OBJS) $(LIBS) $(COLLECT2_LIBS)
164190081Sobrien	mv -f T$@ $@
164218334Speter
1643169699Skancollect2.o : collect2.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h \
164490081Sobrien	$(OBSTACK_H) $(DEMANGLE_H) collect2.h version.h
1645169699Skan	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS)  \
1646132727Skan	-DTARGET_MACHINE=\"$(target_noncanonical)\" \
164790081Sobrien	-c $(srcdir)/collect2.c $(OUTPUT_OPTION)
164818334Speter
1649132727Skantlink.o: tlink.c $(DEMANGLE_H) $(HASHTAB_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1650117404Skan    $(OBSTACK_H) collect2.h intl.h
165118334Speter
165218334Speter# A file used by all variants of C.
165318334Speter
1654132727Skanc-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1655169699Skan	$(OBSTACK_H) $(C_COMMON_H) $(FLAGS_H) toplev.h output.h $(C_PRAGMA_H) \
1656132727Skan	$(GGC_H) $(EXPR_H) $(TM_P_H) builtin-types.def builtin-attrs.def \
1657169699Skan	$(DIAGNOSTIC_H) gt-c-common.h langhooks.h $(VARRAY_H) $(RTL_H) \
1658169699Skan	$(TARGET_H) $(C_TREE_H) tree-iterator.h langhooks.h tree-mudflap.h \
1659169699Skan	intl.h opts.h $(REAL_H) $(CPPLIB_H) $(TREE_INLINE_H) $(HASHTAB_H) \
1660169699Skan	$(BUILTINS_DEF)
1661169699Skan
1662132727Skanc-pretty-print.o : c-pretty-print.c $(C_PRETTY_PRINT_H) \
1663169699Skan	$(C_TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(REAL_H) \
1664169699Skan	$(DIAGNOSTIC_H) tree-iterator.h
166518334Speter
1666169699Skanc-opts.o : c-opts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)		\
1667169699Skan        $(TREE_H) $(C_PRAGMA_H) $(FLAGS_H) toplev.h langhooks.h		\
1668169699Skan        $(TREE_INLINE_H) $(DIAGNOSTIC_H) intl.h debug.h $(C_COMMON_H)	\
1669169699Skan        opts.h options.h $(MKDEPS_H) c-incpath.h cppdefault.h
1670169699Skan	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1671132727Skan		$< $(OUTPUT_OPTION) @TARGET_SYSTEM_ROOT_DEFINE@
1672117404Skan
1673132727Skanc-cppbuiltin.o : c-cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1674169699Skan	$(TREE_H) version.h $(C_COMMON_H) $(C_PRAGMA_H) $(FLAGS_H) toplev.h \
1675169699Skan	output.h except.h $(REAL_H) $(TARGET_H) $(TM_P_H)
1676132727Skan
167790081Sobrien# A file used by all variants of C and some other languages.
167890081Sobrien
1679169699Skanattribs.o : attribs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1680169699Skan	$(FLAGS_H) toplev.h output.h $(RTL_H) $(GGC_H) $(TM_P_H) \
1681169699Skan	$(TARGET_H) langhooks.h $(CPPLIB_H)
168290081Sobrien
1683132727Skanc-format.o : c-format.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) langhooks.h \
1684169699Skan	$(C_COMMON_H) $(FLAGS_H) toplev.h intl.h $(DIAGNOSTIC_H) c-format.h
168590081Sobrien
1686169699Skanc-semantics.o : c-semantics.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1687169699Skan	$(TREE_H) $(FLAGS_H) toplev.h output.h $(RTL_H) $(GGC_H) \
1688169699Skan	$(PREDICT_H) $(TREE_INLINE_H) $(C_COMMON_H) except.h $(FUNCTION_H) \
1689169699Skan	langhooks.h $(SPLAY_TREE_H) $(TIMEVAR_H) $(TREE_GIMPLE_H) \
1690169699Skan	$(VARRAY_H)
169190081Sobrien
1692132727Skanc-dump.o : c-dump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1693169699Skan	$(C_TREE_H) $(TREE_DUMP_H)
1694117404Skan
1695132727Skanc-pch.o : c-pch.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(CPPLIB_H) $(TREE_H) \
1696169699Skan	$(C_COMMON_H) output.h toplev.h $(C_PRAGMA_H) $(GGC_H) debug.h \
1697169699Skan	langhooks.h $(FLAGS_H) hosthooks.h version.h $(TARGET_H)
1698169699Skan	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1699132727Skan	  -DHOST_MACHINE=\"$(host)\" -DTARGET_MACHINE=\"$(target)\" \
1700132727Skan	  $< $(OUTPUT_OPTION)
1701132727Skan
1702169699Skanc-omp.o : c-omp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1703169699Skan	$(FUNCTION_H) $(C_COMMON_H) toplev.h $(TREE_GIMPLE_H)
1704169699Skan
170518334Speter# Language-independent files.
170618334Speter
170750448SobrienDRIVER_DEFINES = \
170890081Sobrien  -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \
1709132727Skan  -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
1710132727Skan  -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \
171118334Speter  -DDEFAULT_TARGET_VERSION=\"$(version)\" \
1712132727Skan  -DDEFAULT_TARGET_MACHINE=\"$(target_noncanonical)\" \
171390081Sobrien  -DSTANDARD_BINDIR_PREFIX=\"$(bindir)/\" \
171490081Sobrien  -DTOOLDIR_BASE_PREFIX=\"$(unlibsubdir)/../\" \
1715132727Skan  @TARGET_SYSTEM_ROOT_DEFINE@ \
1716117404Skan  $(VALGRIND_DRIVER_DEFINES) \
171790081Sobrien  `test "X$${SHLIB_LINK}" = "X" || test "@enable_shared@" != "yes" || echo "-DENABLE_SHARED_LIBGCC"` \
171890081Sobrien  `test "X$${SHLIB_MULTILIB}" = "X" || echo "-DNO_SHARED_LIBGCC_MULTILIB"`
171990081Sobrien
1720132727Skangcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \
1721169699Skan    Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \
1722169699Skan    configargs.h $(OBSTACK_H) opts.h
172390081Sobrien	(SHLIB_LINK='$(SHLIB_LINK)' \
172490081Sobrien	SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \
1725169699Skan	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
172650448Sobrien  $(DRIVER_DEFINES) \
172790081Sobrien  -c $(srcdir)/gcc.c $(OUTPUT_OPTION))
172818334Speter
1729132727Skangccspec.o: gccspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H)
173090081Sobrien	(SHLIB_LINK='$(SHLIB_LINK)' \
173190081Sobrien	SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \
1732169699Skan	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
173390081Sobrien  $(DRIVER_DEFINES) \
173490081Sobrien  -c $(srcdir)/gccspec.c $(OUTPUT_OPTION))
173552298Sobrien
1736132727Skancppspec.o: cppspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H)
173790081Sobrien
173890081Sobriengencheck.h : s-gencheck ; @true
173990081Sobriens-gencheck : Makefile
174090081Sobrien	ltf="$(lang_tree_files)"; for f in $$ltf; do \
174190081Sobrien	    echo "#include \"$$f\""; \
174290081Sobrien	done | sed 's|$(srcdir)/||' > tmp-gencheck.h
1743169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-gencheck.h gencheck.h
174490081Sobrien	$(STAMP) s-gencheck
174590081Sobrien
174690081Sobrienspecs.h : s-specs ; @true
174790081Sobriens-specs : Makefile
174890081Sobrien	lsf="$(lang_specs_files)"; for f in $$lsf; do \
174990081Sobrien	    echo "#include \"$$f\""; \
175090081Sobrien	done | sed 's|$(srcdir)/||' > tmp-specs.h
1751169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-specs.h specs.h
175290081Sobrien	$(STAMP) s-specs
175390081Sobrien
1754169699Skanoptionlist: s-options ; @true
1755169699Skans-options: $(ALL_OPT_FILES) Makefile $(srcdir)/opt-gather.awk
1756169699Skan	$(AWK) -f $(srcdir)/opt-gather.awk $(ALL_OPT_FILES) > tmp-optionlist
1757169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-optionlist optionlist
1758169699Skan	$(STAMP) s-options
1759132727Skan
1760169699Skanoptions.c: optionlist $(srcdir)/opt-functions.awk $(srcdir)/optc-gen.awk
1761169699Skan	$(AWK) -f $(srcdir)/opt-functions.awk -f $(srcdir)/optc-gen.awk \
1762169699Skan	       -v header_name="config.h system.h coretypes.h tm.h" < $< > $@ 
1763132727Skan
1764169699Skanoptions.h: s-options-h ; @true
1765169699Skans-options-h: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opth-gen.awk
1766169699Skan	$(AWK) -f $(srcdir)/opt-functions.awk -f $(srcdir)/opth-gen.awk \
1767169699Skan	       < $< > tmp-options.h
1768169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-options.h options.h
1769169699Skan	$(STAMP) $@
1770169699Skan
1771169699Skanoptions.o: options.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) opts.h intl.h
1772169699Skan
1773169699Skangcc-options.o: options.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) opts.h intl.h
1774169699Skan	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(OUTPUT_OPTION) -DGCC_DRIVER options.c
1775169699Skan
177618334Speterdumpvers: dumpvers.c
177718334Speter
1778169699Skanversion.o: version.c version.h $(DATESTAMP) $(BASEVER) $(DEVPHASE)
1779169699Skan	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1780169699Skan	-DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
1781169699Skan	-DDEVPHASE=$(DEVPHASE_s) -c $(srcdir)/version.c $(OUTPUT_OPTION)
178252298Sobrien
1783169699Skangtype-desc.o: gtype-desc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1784169699Skan	$(VARRAY_H) $(HASHTAB_H) $(SPLAY_TREE_H) bitmap.h $(TREE_H) $(RTL_H) \
1785169699Skan	$(FUNCTION_H) insn-config.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \
1786169699Skan	cselib.h insn-addr.h $(OPTABS_H) libfuncs.h debug.h $(GGC_H) \
1787169699Skan	$(CGRAPH_H) $(TREE_FLOW_H) reload.h $(CPP_ID_DATA_H)
1788117404Skan
1789132727Skanggc-common.o: ggc-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(GGC_H) \
1790169699Skan	$(HASHTAB_H) toplev.h $(PARAMS_H) hosthooks.h $(HOSTHOOKS_DEF_H)
179190081Sobrien
1792132727Skanggc-page.o: ggc-page.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
1793169699Skan	$(FLAGS_H) toplev.h $(GGC_H) $(TIMEVAR_H) $(TM_P_H) $(PARAMS_H) $(TREE_FLOW_H)
179490081Sobrien
1795169699Skanggc-zone.o: ggc-zone.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
1796169699Skan	$(TREE_H) $(FLAGS_H) toplev.h $(GGC_H) $(TIMEVAR_H) $(TM_P_H) \
1797169699Skan	$(PARAMS_H) bitmap.h $(VARRAY_H)
179890081Sobrien
1799169699Skanggc-none.o: ggc-none.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(GGC_H) \
1800169699Skan	$(BCONFIG_H)
1801169699Skan
1802132727Skanstringpool.o: stringpool.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1803169699Skan	$(TREE_H) $(GGC_H) gt-stringpool.h $(CPPLIB_H) $(SYMTAB_H)
180490081Sobrien
1805169699Skanprefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) prefix.h \
1806169699Skan	Makefile $(BASEVER)
1807169699Skan	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
1808169699Skan	-DPREFIX=\"$(prefix)\" -DBASEVER=$(BASEVER_s) \
180990081Sobrien	  -c $(srcdir)/prefix.c $(OUTPUT_OPTION)
181018334Speter
1811169699Skanconvert.o: convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1812169699Skan   $(FLAGS_H) convert.h toplev.h langhooks.h $(REAL_H)
181318334Speter
1814169699Skandouble-int.o: double-int.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H)
1815169699Skan
1816169699Skanlanghooks.o : langhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1817169699Skan   $(TREE_H) toplev.h $(TREE_INLINE_H) $(RTL_H) insn-config.h $(INTEGRATE_H) \
1818169699Skan   langhooks.h $(LANGHOOKS_DEF_H) $(FLAGS_H) $(GGC_H) $(DIAGNOSTIC_H) intl.h \
1819169699Skan   $(TREE_GIMPLE_H)
1820169699Skantree.o : tree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1821169699Skan   $(FLAGS_H) $(FUNCTION_H) $(PARAMS_H) \
1822132727Skan   toplev.h $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) langhooks.h \
1823169699Skan   $(REAL_H) gt-tree.h tree-iterator.h $(BASIC_BLOCK_H) $(TREE_FLOW_H) \
1824169699Skan   $(OBSTACK_H) pointer-set.h
1825169699Skantree-dump.o: tree-dump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1826169699Skan   $(TREE_H) langhooks.h toplev.h $(SPLAY_TREE_H) $(TREE_DUMP_H) \
1827169699Skan   tree-iterator.h tree-pass.h $(DIAGNOSTIC_H) $(REAL_H)
1828132727Skantree-inline.o : tree-inline.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1829169699Skan   $(TREE_H) $(RTL_H) $(EXPR_H) $(FLAGS_H) $(PARAMS_H) input.h insn-config.h \
1830169699Skan   $(VARRAY_H) $(HASHTAB_H) $(SPLAY_TREE_H) toplev.h \
1831169699Skan   langhooks.h $(TREE_INLINE_H) $(CGRAPH_H) intl.h $(FUNCTION_H) $(TREE_GIMPLE_H) \
1832169699Skan   debug.h $(DIAGNOSTIC_H) $(TREE_FLOW_H) tree-iterator.h tree-mudflap.h \
1833169699Skan   ipa-prop.h
1834132727Skanprint-tree.o : print-tree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1835169699Skan   $(GGC_H) langhooks.h $(REAL_H) tree-iterator.h
1836169699Skanstor-layout.o : stor-layout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1837169699Skan   $(TREE_H) $(PARAMS_H) $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) $(RTL_H) \
1838169699Skan   $(GGC_H) $(TM_P_H) $(TARGET_H) langhooks.h $(REGS_H) gt-stor-layout.h \
1839169699Skan   toplev.h
1840169699Skantree-ssa-structalias.o: tree-ssa-structalias.c tree-ssa-structalias.h \
1841169699Skan   $(SYSTEM_H) $(CONFIG_H) $(GGC_H) $(TREE_H) $(TREE_FLOW_H) \
1842169699Skan   $(TM_H) coretypes.h $(CGRAPH_H) tree-pass.h $(TIMEVAR_H) \
1843171835Skan   gt-tree-ssa-structalias.h $(PARAMS_H) pointer-set.h
1844169699Skantree-ssa.o : tree-ssa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1845169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) output.h $(DIAGNOSTIC_H) \
1846169699Skan   toplev.h $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1847169699Skan   $(TREE_DUMP_H) langhooks.h tree-pass.h $(BASIC_BLOCK_H) bitmap.h \
1848169699Skan   $(FLAGS_H) $(GGC_H) hard-reg-set.h $(HASHTAB_H) pointer-set.h \
1849169699Skan   $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H)
1850169699Skantree-into-ssa.o : tree-into-ssa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1851169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) output.h $(DIAGNOSTIC_H) \
1852169699Skan   $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1853169699Skan   langhooks.h domwalk.h tree-pass.h $(GGC_H) $(PARAMS_H) $(BASIC_BLOCK_H) \
1854169699Skan   bitmap.h $(CFGLOOP_H) $(FLAGS_H) hard-reg-set.h $(HASHTAB_H) \
1855169699Skan   $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) vecprim.h
1856169699Skantree-outof-ssa.o : tree-outof-ssa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1857169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) output.h $(DIAGNOSTIC_H) \
1858169699Skan   $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1859169699Skan   langhooks.h tree-pass.h $(TREE_SSA_LIVE_H) $(BASIC_BLOCK_H) bitmap.h \
1860169699Skan   $(FLAGS_H) $(GGC_H) hard-reg-set.h $(HASHTAB_H) $(TREE_GIMPLE_H) \
1861169699Skan   $(TREE_INLINE_H) $(VARRAY_H) toplev.h vecprim.h
1862169699Skantree-ssa-dse.o : tree-ssa-dse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1863169699Skan   $(TM_H) $(GGC_H) $(TREE_H) $(RTL_H) $(TM_P_H) $(BASIC_BLOCK_H) \
1864169699Skan   $(TREE_FLOW_H) tree-pass.h $(TREE_DUMP_H) domwalk.h $(FLAGS_H) \
1865169699Skan   $(DIAGNOSTIC_H) $(TIMEVAR_H)
1866169699Skantree-ssa-forwprop.o : tree-ssa-forwprop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1867169699Skan   $(TM_H) $(GGC_H) $(TREE_H) $(RTL_H) $(TM_P_H) $(BASIC_BLOCK_H) \
1868169699Skan   $(TREE_FLOW_H) tree-pass.h $(TREE_DUMP_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) \
186990081Sobrien   langhooks.h
1870169699Skantree-ssa-phiopt.o : tree-ssa-phiopt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1871169699Skan   $(TM_H) $(GGC_H) $(TREE_H) $(RTL_H) $(TM_P_H) $(BASIC_BLOCK_H) \
1872169699Skan   $(TREE_FLOW_H) tree-pass.h $(TREE_DUMP_H) langhooks.h $(FLAGS_H) \
1873169699Skan   $(DIAGNOSTIC_H) $(TIMEVAR_H)
1874169699Skantree-nrv.o : tree-nrv.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1875169699Skan   $(TM_H) $(TREE_H) $(RTL_H) $(FUNCTION_H) $(BASIC_BLOCK_H) $(EXPR_H) \
1876169699Skan   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TIMEVAR_H) $(TREE_DUMP_H) tree-pass.h \
1877169699Skan   langhooks.h
1878169699Skantree-ssa-copy.o : tree-ssa-copy.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1879169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h $(DIAGNOSTIC_H) \
1880169699Skan   $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1881169699Skan   $(BASIC_BLOCK_H) tree-pass.h langhooks.h tree-ssa-propagate.h $(FLAGS_H)
1882169699Skantree-ssa-propagate.o : tree-ssa-propagate.c $(TREE_FLOW_H) $(CONFIG_H) \
1883169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
1884169699Skan   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1885169699Skan   $(TREE_DUMP_H) $(BASIC_BLOCK_H) tree-pass.h langhooks.h \
1886169699Skan   tree-ssa-propagate.h vec.h gt-tree-ssa-propagate.h $(FLAGS_H) $(VARRAY_H)
1887169699Skantree-ssa-dom.o : tree-ssa-dom.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1888169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h $(DIAGNOSTIC_H) \
1889169699Skan   $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1890169699Skan   $(BASIC_BLOCK_H) domwalk.h tree-pass.h $(FLAGS_H) langhooks.h \
1891169699Skan   tree-ssa-propagate.h $(CFGLOOP_H) $(PARAMS_H) $(REAL_H)
1892169699Skantree-ssa-uncprop.o : tree-ssa-uncprop.c $(TREE_FLOW_H) $(CONFIG_H) \
1893169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
1894169699Skan   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1895169699Skan   $(TREE_DUMP_H) $(BASIC_BLOCK_H) domwalk.h tree-pass.h $(FLAGS_H) \
1896169699Skan   langhooks.h tree-ssa-propagate.h $(REAL_H)
1897169699Skantree-ssa-threadedge.o : tree-ssa-threadedge.c $(TREE_FLOW_H) $(CONFIG_H) \
1898169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
1899169699Skan   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1900169699Skan   $(BASIC_BLOCK_H) $(FLAGS_H) tree-pass.h $(CFGLOOP_H)
1901169699Skantree-ssa-threadupdate.o : tree-ssa-threadupdate.c $(TREE_FLOW_H) $(CONFIG_H) \
1902169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
1903169699Skan   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1904169699Skan   $(BASIC_BLOCK_H) $(FLAGS_H) tree-pass.h $(CFGLOOP_H)
1905169699Skantree-ssanames.o : tree-ssanames.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1906169699Skan   $(TM_H) $(TREE_H) $(VARRAY_H) $(GGC_H) gt-tree-ssanames.h  $(TREE_FLOW_H)
1907169699Skantree-phinodes.o : tree-phinodes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
1908169699Skan   $(TM_H) $(TREE_H) $(VARRAY_H) $(GGC_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) \
1909169699Skan   gt-tree-phinodes.h $(RTL_H) toplev.h
1910169699Skandomwalk.o : domwalk.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1911169699Skan   $(TREE_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) domwalk.h $(GGC_H)
1912169699Skantree-ssa-live.o : tree-ssa-live.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1913169699Skan   $(TREE_H) $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) \
1914169699Skan   $(TM_H) coretypes.h $(TREE_DUMP_H) $(TREE_SSA_LIVE_H) $(BASIC_BLOCK_H) \
1915169699Skan   bitmap.h $(FLAGS_H) $(HASHTAB_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) \
1916169699Skan   $(VARRAY_H) toplev.h vecprim.h
1917169699Skantree-ssa-copyrename.o : tree-ssa-copyrename.c $(TREE_FLOW_H) $(CONFIG_H) \
1918169699Skan   $(SYSTEM_H) $(TREE_H) $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) tree-pass.h \
1919169699Skan   $(TM_H) coretypes.h $(TREE_DUMP_H) $(TREE_SSA_LIVE_H) $(BASIC_BLOCK_H) \
1920169699Skan   bitmap.h $(FLAGS_H) $(HASHTAB_H) langhooks.h $(TREE_GIMPLE_H) \
1921169699Skan   $(TREE_INLINE_H)
1922169699Skantree-ssa-pre.o : tree-ssa-pre.c $(TREE_FLOW_H) $(CONFIG_H) \
1923169699Skan   $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) \
1924169699Skan   $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) $(CFGLOOP_H) \
1925169699Skan   alloc-pool.h $(BASIC_BLOCK_H) bitmap.h $(HASHTAB_H) $(TREE_GIMPLE_H) \
1926169699Skan   $(TREE_INLINE_H) tree-iterator.h
1927169699Skantree-vn.o : tree-vn.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) \
1928169699Skan   $(TREE_H) $(TREE_FLOW_H) $(HASHTAB_H) langhooks.h tree-pass.h \
1929169699Skan   $(TREE_DUMP_H) $(DIAGNOSTIC_H)
1930169699Skantree-vrp.o : tree-vrp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
1931169699Skan   $(TREE_FLOW_H) tree-pass.h $(TREE_DUMP_H) $(DIAGNOSTIC_H) $(GGC_H) \
1932169699Skan   $(BASIC_BLOCK_H) tree-ssa-propagate.h $(FLAGS_H) $(TREE_DUMP_H) \
1933169699Skan   $(CFGLOOP_H) $(SCEV_H) tree-chrec.h $(TIMEVAR_H) toplev.h intl.h
1934169699Skantree-cfg.o : tree-cfg.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1935169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(FLAGS_H) output.h \
1936169699Skan   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1937169699Skan   $(TREE_DUMP_H) except.h langhooks.h $(CFGLOOP_H) tree-pass.h \
1938169699Skan   $(CFGLAYOUT_H) $(BASIC_BLOCK_H) hard-reg-set.h $(HASHTAB_H) toplev.h \
1939169699Skan   tree-ssa-propagate.h
1940169699Skantree-cfgcleanup.o : tree-cfgcleanup.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1941169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(FLAGS_H) output.h \
1942169699Skan   $(DIAGNOSTIC_H) toplev.h $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
1943169699Skan   $(TREE_DUMP_H) except.h langhooks.h $(CFGLOOP_H) tree-pass.h \
1944169699Skan   $(CFGLAYOUT_H) $(BASIC_BLOCK_H) hard-reg-set.h $(HASHTAB_H) toplev.h \
1945169699Skan   tree-ssa-propagate.h
1946169699Skanrtl-factoring.o : rtl-factoring.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
1947169699Skan   coretypes.h $(TM_H) $(BASIC_BLOCK_H) $(GGC_H) $(REGS_H) $(PARAMS_H) $(EXPR_H) \
1948169699Skan   addresses.h $(TM_P_H) tree-pass.h $(TREE_FLOW_H) $(TIMEVAR_H) output.h
1949169699Skantree-tailcall.o : tree-tailcall.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1950169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(FUNCTION_H) $(TM_H) coretypes.h \
1951169699Skan   $(TREE_DUMP_H) $(DIAGNOSTIC_H) except.h tree-pass.h $(FLAGS_H) langhooks.h \
1952169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h
1953169699Skantree-ssa-sink.o : tree-ssa-sink.c $(TREE_FLOW_H) $(CONFIG_H) \
1954169699Skan   $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) \
1955169699Skan   $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) alloc-pool.h \
1956169699Skan   $(BASIC_BLOCK_H) bitmap.h $(CFGLOOP_H) $(FIBHEAP_H) $(HASHTAB_H) \
1957169699Skan   langhooks.h $(REAL_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) tree-iterator.h
1958169699Skantree-nested.o: tree-nested.c $(CONFIG_H) $(SYSTEM_H) $(TM_H) $(TREE_H) \
1959169699Skan   $(RTL_H) $(TM_P_H) $(FUNCTION_H) $(TREE_DUMP_H) $(TREE_INLINE_H) \
1960169699Skan   tree-iterator.h $(TREE_GIMPLE_H) $(CGRAPH_H) $(EXPR_H) langhooks.h \
1961169699Skan   $(GGC_H) gt-tree-nested.h coretypes.h $(TREE_FLOW_H)
1962169699Skantree-if-conv.o: tree-if-conv.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
1963169699Skan   $(TREE_H) $(FLAGS_H) $(TIMEVAR_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) \
1964169699Skan   $(CFGLOOP_H) $(RTL_H) $(C_COMMON_H) tree-chrec.h $(TREE_DATA_REF_H) \
1965169699Skan   $(SCEV_H) tree-pass.h $(DIAGNOSTIC_H) $(TARGET_H) $(TREE_DUMP_H) \
1966169699Skan   $(VARRAY_H)
1967169699Skantree-iterator.o : tree-iterator.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
1968169699Skan   coretypes.h $(GGC_H) tree-iterator.h $(TREE_GIMPLE_H) gt-tree-iterator.h
1969169699Skantree-dfa.o : tree-dfa.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1970169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h $(DIAGNOSTIC_H) \
1971169699Skan   $(TREE_INLINE_H) $(HASHTAB_H) pointer-set.h $(FLAGS_H) $(FUNCTION_H) \
1972169699Skan   $(TIMEVAR_H) convert.h $(TM_H) coretypes.h langhooks.h $(TREE_DUMP_H) \
1973169699Skan   tree-pass.h $(PARAMS_H) $(CGRAPH_H) $(BASIC_BLOCK_H) hard-reg-set.h \
1974169699Skan   $(TREE_GIMPLE_H) 
1975169699Skantree-ssa-operands.o : tree-ssa-operands.c $(TREE_FLOW_H) $(CONFIG_H) \
1976169699Skan   $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) errors.h $(TREE_INLINE_H) \
1977169699Skan   $(FLAGS_H) $(FUNCTION_H) $(TM_H) $(TIMEVAR_H) tree-pass.h toplev.h \
1978169699Skan   gt-tree-ssa-operands.h coretypes.h langhooks.h $(IPA_REFERENCE_H)
1979169699Skantree-eh.o : tree-eh.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
1980169699Skan   $(RTL_H) $(TREE_H) $(TM_H) $(FLAGS_H) $(FUNCTION_H) except.h langhooks.h \
1981169699Skan   $(GGC_H) tree-pass.h coretypes.h $(TIMEVAR_H) $(TM_P_H) \
1982169699Skan   $(TREE_DUMP_H) $(TREE_INLINE_H) tree-iterator.h toplev.h
1983169699Skantree-ssa-loop.o : tree-ssa-loop.c $(TREE_FLOW_H) $(CONFIG_H) \
1984169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) \
1985169699Skan   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1986169699Skan   tree-pass.h $(FLAGS_H) $(TREE_INLINE_H) $(SCEV_H) $(BASIC_BLOCK_H) \
1987169699Skan   hard-reg-set.h
1988169699Skantree-ssa-loop-unswitch.o : tree-ssa-loop-unswitch.c $(TREE_FLOW_H) \
1989169699Skan   $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) \
1990169699Skan   domwalk.h $(PARAMS_H) output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) \
1991169699Skan   coretypes.h $(TREE_DUMP_H) tree-pass.h $(BASIC_BLOCK_H) hard-reg-set.h
1992169699Skantree-ssa-address.o : tree-ssa-address.c $(TREE_FLOW_H) $(CONFIG_H) \
1993169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) \
1994169699Skan   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
1995169699Skan   tree-pass.h $(FLAGS_H) $(TREE_INLINE_H) $(RECOG_H) insn-config.h $(EXPR_H) \
1996169699Skan   gt-tree-ssa-address.h $(GGC_H)
1997169699Skantree-ssa-loop-niter.o : tree-ssa-loop-niter.c $(TREE_FLOW_H) $(CONFIG_H) \
1998169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(PARAMS_H) \
1999169699Skan   $(TREE_INLINE_H) output.h $(DIAGNOSTIC_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2000169699Skan   $(FLAGS_H) tree-pass.h $(SCEV_H) $(TREE_DATA_REF_H) $(BASIC_BLOCK_H) \
2001169699Skan   $(GGC_H) hard-reg-set.h tree-chrec.h intl.h
2002169699Skantree-ssa-loop-ivcanon.o : tree-ssa-loop-ivcanon.c $(TREE_FLOW_H) $(CONFIG_H) \
2003169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(PARAMS_H) \
2004169699Skan   $(TREE_INLINE_H) output.h $(DIAGNOSTIC_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2005169699Skan   $(FLAGS_H) tree-pass.h $(SCEV_H) $(BASIC_BLOCK_H) $(GGC_H) hard-reg-set.h \
2006169699Skan   tree-chrec.h
2007169699Skantree-ssa-loop-ch.o : tree-ssa-loop-ch.c $(TREE_FLOW_H) $(CONFIG_H) \
2008169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(TREE_INLINE_H) \
2009169699Skan   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2010169699Skan   tree-pass.h $(FLAGS_H) $(BASIC_BLOCK_H) hard-reg-set.h
2011169699Skantree-ssa-loop-prefetch.o: tree-ssa-loop-prefetch.c $(TREE_FLOW_H) $(CONFIG_H) \
2012169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(EXPR_H) \
2013169699Skan   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2014169699Skan   tree-pass.h $(GGC_H) $(RECOG_H) insn-config.h $(HASHTAB_H) $(SCEV_H) \
2015169699Skan   $(CFGLOOP_H) $(PARAMS_H) langhooks.h $(BASIC_BLOCK_H) hard-reg-set.h \
2016169699Skan   tree-chrec.h toplev.h langhooks.h
2017169699Skantree-ssa-loop-ivopts.o : tree-ssa-loop-ivopts.c $(TREE_FLOW_H) $(CONFIG_H) \
2018169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(EXPR_H) \
2019169699Skan   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2020169699Skan   tree-pass.h $(GGC_H) $(RECOG_H) insn-config.h $(HASHTAB_H) $(SCEV_H) \
2021169699Skan   $(CFGLOOP_H) $(PARAMS_H) langhooks.h $(BASIC_BLOCK_H) hard-reg-set.h \
2022169699Skan   tree-chrec.h $(VARRAY_H)
2023169699Skantree-ssa-loop-manip.o : tree-ssa-loop-manip.c $(TREE_FLOW_H) $(CONFIG_H) \
2024169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) \
2025169699Skan   output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
2026169699Skan   tree-pass.h $(CFGLAYOUT_H) $(SCEV_H) $(BASIC_BLOCK_H) hard-reg-set.h \
2027169699Skan   $(PARAMS_H)
2028169699Skantree-ssa-loop-im.o : tree-ssa-loop-im.c $(TREE_FLOW_H) $(CONFIG_H) \
2029169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) domwalk.h \
2030169699Skan   $(PARAMS_H) output.h $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
2031169699Skan   $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) $(REAL_H) $(BASIC_BLOCK_H) \
2032169699Skan   hard-reg-set.h
2033169699Skantree-ssa-math-opts.o : tree-ssa-math-opts.c $(TREE_FLOW_H) $(CONFIG_H) \
2034169699Skan   $(SYSTEM_H) $(TREE_H) $(TIMEVAR_H) tree-pass.h $(TM_H) $(FLAGS_H) \
2035169699Skan   alloc-pool.h $(BASIC_BLOCK_H) $(TARGET_H)
2036169699Skantree-ssa-alias.o : tree-ssa-alias.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
2037169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(TREE_INLINE_H) $(FLAGS_H) \
2038169699Skan   $(FUNCTION_H) $(TIMEVAR_H) convert.h $(TM_H) coretypes.h langhooks.h \
2039169699Skan   $(TREE_DUMP_H) tree-pass.h $(PARAMS_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) \
2040169699Skan   hard-reg-set.h $(TREE_GIMPLE_H) vec.h tree-ssa-structalias.h \
2041169699Skan   $(IPA_TYPE_ESCAPE_H) vecprim.h pointer-set.h
2042169699Skantree-ssa-reassoc.o : tree-ssa-reassoc.c $(TREE_FLOW_H) $(CONFIG_H) \
2043169699Skan   $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) errors.h $(TIMEVAR_H) \
2044169699Skan   $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) tree-iterator.h\
2045169699Skan   $(BASIC_BLOCK_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) vec.h \
2046169699Skan   alloc-pool.h
2047169699Skantree-optimize.o : tree-optimize.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
2048169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h $(DIAGNOSTIC_H) \
2049169699Skan   $(FLAGS_H) $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) toplev.h \
2050169699Skan   $(FUNCTION_H) langhooks.h $(FLAGS_H) $(CGRAPH_H) $(TREE_INLINE_H) \
2051169699Skan   tree-mudflap.h $(GGC_H) $(CGRAPH_H) tree-pass.h $(CFGLOOP_H) \
2052169699Skan   $(BASIC_BLOCK_H) graph.h hard-reg-set.h
2053169699Skanc-gimplify.o : c-gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2054169699Skan   $(C_TREE_H) $(C_COMMON_H) $(DIAGNOSTIC_H) $(TREE_GIMPLE_H) $(VARRAY_H) \
2055169699Skan   $(FLAGS_H) langhooks.h toplev.h $(RTL_H) $(TREE_FLOW_H) $(LANGHOOKS_DEF_H) \
2056169699Skan   $(TM_H) coretypes.h $(C_PRETTY_PRINT_H) $(CGRAPH_H) $(BASIC_BLOCK_H) \
2057169699Skan   hard-reg-set.h $(TREE_DUMP_H) $(TREE_INLINE_H)
2058169699Skangimplify.o : gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2059169699Skan   $(DIAGNOSTIC_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) langhooks.h \
2060169699Skan   $(LANGHOOKS_DEF_H) $(TREE_FLOW_H) $(CGRAPH_H) $(TIMEVAR_H) $(TM_H) \
2061169699Skan   coretypes.h except.h $(FLAGS_H) $(RTL_H) $(FUNCTION_H) $(EXPR_H) output.h \
2062169699Skan   $(GGC_H) gt-gimplify.h $(HASHTAB_H) $(TARGET_H) toplev.h $(OPTABS_H) \
2063169699Skan   $(REAL_H)
2064169699Skangimple-low.o : gimple-low.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2065169699Skan   $(DIAGNOSTIC_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) langhooks.h \
2066169699Skan   $(LANGHOOKS_DEF_H) $(TREE_FLOW_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
2067169699Skan   except.h $(FLAGS_H) $(RTL_H) $(FUNCTION_H) $(EXPR_H) tree-pass.h \
2068169699Skan   $(HASHTAB_H) toplev.h
2069169699Skanomp-low.o : omp-low.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2070169699Skan   $(RTL_H) $(TREE_GIMPLE_H) $(TREE_INLINE_H) langhooks.h $(DIAGNOSTIC_H) \
2071169699Skan   $(TREE_FLOW_H) $(TIMEVAR_H) $(FLAGS_H) $(EXPR_H) toplev.h tree-pass.h \
2072169699Skan   $(GGC_H)
2073169699Skantree-browser.o : tree-browser.c tree-browser.def $(CONFIG_H) $(SYSTEM_H) \
2074169699Skan   $(TREE_H) $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) \
2075169699Skan   $(TM_H) coretypes.h
2076169699Skantree-chrec.o: tree-chrec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2077169699Skan   $(GGC_H) $(TREE_H) $(REAL_H) $(SCEV_H) tree-pass.h $(PARAMS_H) \
2078169699Skan   $(DIAGNOSTIC_H) $(CFGLOOP_H) $(TREE_FLOW_H)
2079169699Skantree-scalar-evolution.o: tree-scalar-evolution.c $(CONFIG_H) $(SYSTEM_H) \
2080169699Skan   coretypes.h $(TM_H) $(GGC_H) $(TREE_H) $(REAL_H) $(RTL_H) \
2081169699Skan   $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) \
2082169699Skan   $(TIMEVAR_H) $(CFGLOOP_H) $(SCEV_H) tree-pass.h $(FLAGS_H) tree-chrec.h
2083169699Skantree-data-ref.o: tree-data-ref.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2084169699Skan   $(GGC_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) \
2085169699Skan   $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2086169699Skan   $(TREE_DATA_REF_H) $(SCEV_H) tree-pass.h tree-chrec.h
2087169699Skantree-vect-analyze.o: tree-vect-analyze.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2088169699Skan   $(TM_H) $(GGC_H) $(OPTABS_H) $(TREE_H) $(BASIC_BLOCK_H) \
2089169699Skan   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2090169699Skan   tree-vectorizer.h $(TREE_DATA_REF_H) $(SCEV_H) $(EXPR_H) tree-chrec.h
2091169699Skantree-vect-patterns.o: tree-vect-patterns.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2092169699Skan   $(TM_H) errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) \
2093169699Skan   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2094169699Skan   tree-vectorizer.h $(TREE_DATA_REF_H) $(EXPR_H) $(TARGET_H)
2095169699Skantree-vect-transform.o: tree-vect-transform.c $(CONFIG_H) $(SYSTEM_H) \
2096169699Skan   coretypes.h $(TM_H) $(GGC_H) $(OPTABS_H) $(RECOG_H) $(TREE_H) $(RTL_H) \
2097169699Skan   $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) \
2098169699Skan   $(TIMEVAR_H) $(CFGLOOP_H) $(TARGET_H) tree-pass.h $(EXPR_H) \
2099169699Skan   tree-vectorizer.h $(TREE_DATA_REF_H) $(SCEV_H) langhooks.h toplev.h \
2100169699Skan   tree-chrec.h
2101169699Skantree-vectorizer.o: tree-vectorizer.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2102169699Skan   $(TM_H) $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) \
2103169699Skan   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2104169699Skan   tree-pass.h $(EXPR_H) tree-vectorizer.h $(TREE_DATA_REF_H) $(SCEV_H) \
2105169699Skan   input.h $(TARGET_H) $(CFGLAYOUT_H) toplev.h tree-chrec.h
2106169699Skantree-loop-linear.o: tree-loop-linear.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2107169699Skan   $(TM_H) $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) \
2108169699Skan   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2109169699Skan   tree-pass.h $(TREE_DATA_REF_H) $(SCEV_H) $(EXPR_H) $(LAMBDA_H) \
2110169699Skan   $(TARGET_H) tree-chrec.h
2111169699Skantree-stdarg.o: tree-stdarg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2112169699Skan   $(TREE_H) $(FUNCTION_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) tree-pass.h \
2113169699Skan   tree-stdarg.h $(TARGET_H) langhooks.h
2114169699Skantree-object-size.o: tree-object-size.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2115169699Skan   $(TM_H) $(TREE_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) tree-pass.h \
2116169699Skan   tree-ssa-propagate.h
2117169699Skantree-gimple.o : tree-gimple.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(EXPR_H) \
2118169699Skan   $(RTL_H) $(TREE_GIMPLE_H) $(TM_H) coretypes.h bitmap.h $(GGC_H) \
2119169699Skan   output.h $(TREE_FLOW_H)
2120169699Skantree-mudflap.o : $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TREE_INLINE_H) \
2121169699Skan   $(TREE_GIMPLE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) langhooks.h tree-mudflap.h \
2122169699Skan   $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(CGRAPH_H) $(GGC_H) \
2123169699Skan   gt-tree-mudflap.h $(BASIC_BLOCK_H) $(FLAGS_H) $(FUNCTION_H) hard-reg-set.h \
2124169699Skan   $(RTL_H) $(TM_P_H) $(TREE_FLOW_H) toplev.h
2125169699Skantree-nomudflap.o : $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TREE_INLINE_H) \
2126169699Skan   $(C_TREE_H) $(C_COMMON_H) $(TREE_GIMPLE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) \
2127169699Skan   output.h $(VARRAY_H) langhooks.h tree-mudflap.h $(TM_H) coretypes.h \
2128169699Skan   $(GGC_H) gt-tree-mudflap.h tree-pass.h toplev.h
2129169699Skantree-pretty-print.o : tree-pretty-print.c $(CONFIG_H) $(SYSTEM_H) \
2130169699Skan   $(TREE_H) $(DIAGNOSTIC_H) $(REAL_H) $(HASHTAB_H) $(TREE_FLOW_H) \
2131169699Skan   $(TM_H) coretypes.h tree-iterator.h tree-chrec.h langhooks.h tree-pass.h
2132169699Skanfold-const.o : fold-const.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2133169699Skan   $(TREE_H) $(FLAGS_H) $(REAL_H) toplev.h $(HASHTAB_H) $(EXPR_H) $(RTL_H) \
2134169699Skan   $(GGC_H) $(TM_P_H) langhooks.h $(MD5_H) intl.h
2135169699Skandiagnostic.o : diagnostic.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2136169699Skan   $(TREE_H) version.h $(TM_P_H) $(FLAGS_H) input.h toplev.h intl.h \
2137169699Skan   $(DIAGNOSTIC_H) langhooks.h $(LANGHOOKS_DEF_H) diagnostic.def opts.h
2138132727Skanopts.o : opts.c opts.h options.h toplev.h $(CONFIG_H) $(SYSTEM_H) \
2139169699Skan   coretypes.h $(TREE_H) $(TM_H) langhooks.h $(GGC_H) $(RTL_H) \
2140169699Skan   output.h $(DIAGNOSTIC_H) $(TM_P_H) $(INSN_ATTR_H) intl.h $(TARGET_H) \
2141169699Skan   $(FLAGS_H) $(PARAMS_H) tree-pass.h
2142169699Skanopts-common.o : opts-common.c opts.h $(CONFIG_H) $(SYSTEM_H) \
2143169699Skan   coretypes.h intl.h
2144169699Skantarghooks.o : targhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
2145169699Skan   $(EXPR_H) $(TM_H) $(RTL_H) $(TM_P_H) $(FUNCTION_H) output.h toplev.h \
2146169699Skan   $(MACHMODE_H) $(TARGET_DEF_H) $(TARGET_H) $(GGC_H) gt-targhooks.h
2147132727Skan
2148169699Skantoplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2149169699Skan   version.h $(RTL_H) $(FUNCTION_H) $(FLAGS_H) xcoffout.h input.h \
2150169699Skan   $(INSN_ATTR_H) output.h $(DIAGNOSTIC_H) debug.h insn-config.h intl.h \
2151169699Skan   $(RECOG_H) Makefile toplev.h dwarf2out.h sdbout.h dbxout.h $(EXPR_H) \
2152169699Skan   hard-reg-set.h $(BASIC_BLOCK_H) graph.h except.h $(REGS_H) $(TIMEVAR_H) \
2153169699Skan   value-prof.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) \
2154169699Skan   langhooks.h insn-flags.h $(CFGLAYOUT_H) $(CFGLOOP_H) hosthooks.h \
2155169699Skan   $(CGRAPH_H) $(COVERAGE_H) alloc-pool.h $(GGC_H) $(INTEGRATE_H) \
2156169699Skan   $(CPPLIB_H) opts.h params.def tree-mudflap.h $(REAL_H)
2157169699Skan	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
2158169699Skan	  -DTARGET_NAME=\"$(target_noncanonical)\" \
2159169699Skan	  -c $(srcdir)/toplev.c $(OUTPUT_OPTION)
2160169699Skan
2161169699Skanpasses.o : passes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2162169699Skan   $(RTL_H) $(FUNCTION_H) $(FLAGS_H) xcoffout.h input.h $(INSN_ATTR_H) output.h \
2163169699Skan   $(DIAGNOSTIC_H) debug.h insn-config.h intl.h $(RECOG_H) toplev.h \
216490081Sobrien   dwarf2out.h sdbout.h dbxout.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \
2165169699Skan   graph.h except.h $(REGS_H) $(TIMEVAR_H) value-prof.h \
2166132727Skan   $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) \
2167169699Skan   langhooks.h insn-flags.h $(CFGLAYOUT_H) $(REAL_H) $(CFGLOOP_H) \
2168169699Skan   hosthooks.h $(CGRAPH_H) $(COVERAGE_H) tree-pass.h $(TREE_DUMP_H) \
2169169699Skan   $(GGC_H) $(INTEGRATE_H) $(CPPLIB_H) opts.h $(TREE_FLOW_H) $(TREE_INLINE_H)
2170169699Skan
2171132727Skanmain.o : main.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h
217218334Speter
2173132727Skanhost-default.o : host-default.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2174169699Skan   hosthooks.h $(HOSTHOOKS_DEF_H)
217518334Speter
2176169699Skanrtl-error.o: rtl-error.c $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2177169699Skan   $(INSN_ATTR_H) insn-config.h input.h toplev.h intl.h $(DIAGNOSTIC_H) \
2178169699Skan   $(CONFIG_H)
2179132727Skan
2180169699Skanrtl.o : rtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2181169699Skan  $(GGC_H) $(BCONFIG_H) insn-notes.def reg-notes.def toplev.h $(REAL_H)
218218334Speter
2183132727Skanprint-rtl.o : print-rtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2184169699Skan    $(RTL_H) $(TREE_H) hard-reg-set.h $(BASIC_BLOCK_H) $(FLAGS_H) \
2185169699Skan    $(BCONFIG_H) $(REAL_H)
2186132727Skanrtlanal.o : rtlanal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \
2187169699Skan   $(RTL_H) hard-reg-set.h $(TM_P_H) insn-config.h $(RECOG_H) $(REAL_H) \
2188169699Skan   $(FLAGS_H) $(REGS_H) output.h $(TARGET_H) $(FUNCTION_H)
218918334Speter
2190169699Skanvarasm.o : varasm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2191169699Skan   $(RTL_H) $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) hard-reg-set.h $(REGS_H) \
2192169699Skan   output.h $(C_PRAGMA_H) toplev.h xcoffout.h debug.h $(GGC_H) $(TM_P_H) \
2193169699Skan   $(HASHTAB_H) $(TARGET_H) langhooks.h gt-varasm.h $(BASIC_BLOCK_H) \
2194169699Skan   $(CFGLAYOUT_H) $(CGRAPH_H) tree-mudflap.h $(REAL_H)
2195169699Skanfunction.o : function.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2196169699Skan   $(TREE_H) $(CFGLAYOUT_H) $(TREE_GIMPLE_H) $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) \
2197169699Skan   $(OPTABS_H) libfuncs.h $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
2198169699Skan   output.h toplev.h except.h $(HASHTAB_H) $(GGC_H) $(TM_P_H) langhooks.h \
2199169699Skan   gt-function.h $(TARGET_H) $(BASIC_BLOCK_H) $(INTEGRATE_H) $(PREDICT_H) \
2200169699Skan   tree-pass.h vecprim.h
2201169699Skanstmt.o : stmt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2202169699Skan   $(TREE_H) $(FLAGS_H) $(FUNCTION_H) insn-config.h hard-reg-set.h $(EXPR_H) \
2203169699Skan   libfuncs.h except.h $(RECOG_H) toplev.h output.h $(GGC_H) $(TM_P_H) \
2204169699Skan   langhooks.h $(PREDICT_H) $(OPTABS_H) $(TARGET_H) $(MACHMODE_H) \
2205169699Skan   $(REGS_H)
2206132727Skanexcept.o : except.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2207169699Skan   $(TREE_H) $(FLAGS_H) except.h $(FUNCTION_H) $(EXPR_H) libfuncs.h \
2208132727Skan   langhooks.h insn-config.h hard-reg-set.h $(BASIC_BLOCK_H) output.h \
2209117404Skan   dwarf2asm.h dwarf2out.h toplev.h $(HASHTAB_H) intl.h $(GGC_H) \
2210169699Skan   gt-except.h $(CGRAPH_H) $(INTEGRATE_H) $(DIAGNOSTIC_H) dwarf2.h \
2211169699Skan   $(TARGET_H) $(TM_P_H) tree-pass.h $(TIMEVAR_H)
2212169699Skanexpr.o : expr.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2213169699Skan   $(TREE_H) $(FLAGS_H) $(FUNCTION_H) $(REGS_H) $(EXPR_H) $(OPTABS_H) \
2214169699Skan   libfuncs.h $(INSN_ATTR_H) insn-config.h $(RECOG_H) output.h \
2215169699Skan   typeclass.h hard-reg-set.h toplev.h hard-reg-set.h except.h reload.h \
2216169699Skan   $(GGC_H) langhooks.h intl.h $(TM_P_H) $(REAL_H) $(TARGET_H) \
2217169699Skan   tree-iterator.h gt-expr.h $(MACHMODE_H) $(TIMEVAR_H) $(TREE_FLOW_H) \
2218169699Skan   tree-pass.h
2219132727Skandojump.o : dojump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
2220169699Skan   $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) $(OPTABS_H) $(INSN_ATTR_H) insn-config.h \
2221146906Skan   langhooks.h $(GGC_H) gt-dojump.h
2222169699Skanbuiltins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2223169699Skan   $(TREE_H) $(TREE_GIMPLE_H) $(FLAGS_H) $(TARGET_H) $(FUNCTION_H) $(REGS_H) \
2224169699Skan   $(EXPR_H) $(OPTABS_H) insn-config.h $(RECOG_H) output.h typeclass.h \
2225169699Skan   hard-reg-set.h toplev.h hard-reg-set.h except.h $(TM_P_H) $(PREDICT_H) \
2226169699Skan   libfuncs.h $(REAL_H) langhooks.h $(BASIC_BLOCK_H) tree-mudflap.h \
2227169699Skan   $(BUILTINS_DEF) $(MACHMODE_H)
2228169699Skancalls.o : calls.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2229169699Skan   $(TREE_H) $(FLAGS_H) $(EXPR_H) $(OPTABS_H) langhooks.h $(TARGET_H) \
2230169699Skan   libfuncs.h $(REGS_H) toplev.h output.h $(FUNCTION_H) $(TIMEVAR_H) $(TM_P_H) \
2231169699Skan   $(CGRAPH_H) except.h sbitmap.h
2232132727Skanexpmed.o : expmed.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
2233169699Skan   $(FLAGS_H) insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) $(REAL_H) \
2234117404Skan   toplev.h $(TM_P_H) langhooks.h
2235132727Skanexplow.o : explow.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
2236169699Skan   $(FLAGS_H) hard-reg-set.h insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) \
2237169699Skan   toplev.h $(FUNCTION_H) $(GGC_H) $(TM_P_H) langhooks.h gt-explow.h \
2238169699Skan   $(TARGET_H) output.h
2239169699Skanoptabs.o : optabs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2240169699Skan   $(TREE_H) $(FLAGS_H) insn-config.h $(EXPR_H) $(OPTABS_H) libfuncs.h \
2241169699Skan   $(RECOG_H) reload.h toplev.h $(GGC_H) $(REAL_H) $(TM_P_H) except.h \
2242169699Skan   gt-optabs.h $(BASIC_BLOCK_H) $(TARGET_H) $(FUNCTION_H)
2243169699Skandbxout.o : dbxout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2244169699Skan   $(RTL_H) $(FLAGS_H) $(REGS_H) debug.h $(TM_P_H) $(TARGET_H) $(FUNCTION_H) \
2245169699Skan   langhooks.h insn-config.h reload.h gstab.h xcoffout.h output.h dbxout.h \
2246169699Skan   toplev.h $(GGC_H) $(OBSTACK_H) $(EXPR_H) gt-dbxout.h
2247132727Skandebug.o : debug.c debug.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)
2248169699Skansdbout.o : sdbout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) debug.h \
2249169699Skan   $(TREE_H) $(GGC_H) $(RTL_H) $(REGS_H) $(FLAGS_H) insn-config.h \
2250169699Skan   output.h toplev.h $(TM_P_H) gsyms.h langhooks.h $(TARGET_H) sdbout.h \
2251169699Skan   gt-sdbout.h reload.h $(VARRAY_H)
2252169699Skandwarf2out.o : dwarf2out.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2253169699Skan   $(TREE_H) version.h $(RTL_H) dwarf2.h debug.h $(FLAGS_H) insn-config.h \
2254169699Skan   output.h $(DIAGNOSTIC_H) $(REAL_H) hard-reg-set.h $(REGS_H) $(EXPR_H) \
2255169699Skan   libfuncs.h toplev.h dwarf2out.h reload.h $(GGC_H) except.h dwarf2asm.h \
2256169699Skan   $(TM_P_H) langhooks.h $(HASHTAB_H) gt-dwarf2out.h $(TARGET_H) $(CGRAPH_H) \
2257169699Skan   $(MD5_H) input.h $(FUNCTION_H) $(VARRAY_H)
2258169699Skandwarf2asm.o : dwarf2asm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2259169699Skan   $(FLAGS_H) $(RTL_H) $(TREE_H) output.h dwarf2asm.h $(TM_P_H) $(GGC_H) \
2260169699Skan   gt-dwarf2asm.h dwarf2.h $(SPLAY_TREE_H) $(TARGET_H)
2261169699Skanvmsdbgout.o : vmsdbgout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) version.h \
2262169699Skan   $(RTL_H) $(FLAGS_H) output.h vmsdbg.h debug.h langhooks.h $(FUNCTION_H) $(TARGET_H)
2263169699Skanxcoffout.o : xcoffout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2264169699Skan   $(TREE_H) $(RTL_H) xcoffout.h $(FLAGS_H) toplev.h output.h dbxout.h \
2265169699Skan   $(GGC_H) $(TARGET_H) gstab.h xcoff.h
2266169699Skanemit-rtl.o : emit-rtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2267169699Skan   $(TREE_H) $(FLAGS_H) $(FUNCTION_H) $(REGS_H) insn-config.h $(RECOG_H) \
2268169699Skan   $(GGC_H) $(EXPR_H) hard-reg-set.h bitmap.h toplev.h $(BASIC_BLOCK_H) \
2269169699Skan   $(HASHTAB_H) $(TM_P_H) debug.h langhooks.h tree-pass.h gt-emit-rtl.h \
2270169699Skan   $(REAL_H)
2271169699Skanreal.o : real.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2272169699Skan   toplev.h $(TM_P_H) $(REAL_H)
2273169699Skandfp.o : dfp.c dfp.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	$(TREE_H) \
2274169699Skan   toplev.h $(TM_P_H) $(REAL_H) $(DECNUM_H)
2275169699Skanintegrate.o : integrate.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2276169699Skan   $(RTL_H) $(TREE_H) $(FLAGS_H) debug.h $(INTEGRATE_H) insn-config.h \
2277169699Skan   $(EXPR_H) $(REAL_H) $(REGS_H) intl.h $(FUNCTION_H) output.h $(RECOG_H) \
2278169699Skan   except.h toplev.h $(PARAMS_H) $(TM_P_H) $(TARGET_H) langhooks.h \
2279169699Skan   gt-integrate.h $(GGC_H) tree-pass.h
2280169699Skanjump.o : jump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2281169699Skan   $(FLAGS_H) hard-reg-set.h $(REGS_H) insn-config.h $(RECOG_H) $(EXPR_H) \
2282169699Skan   $(REAL_H) except.h $(FUNCTION_H) tree-pass.h $(DIAGNOSTIC_H) \
2283169699Skan   toplev.h $(INSN_ATTR_H) $(TM_P_H) reload.h $(PREDICT_H) \
2284169699Skan   $(TIMEVAR_H) $(TARGET_H)
2285169699Skansimplify-rtx.o : simplify-rtx.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2286169699Skan   $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h \
2287169699Skan   $(RECOG_H) $(EXPR_H) toplev.h output.h $(FUNCTION_H) $(GGC_H) $(TM_P_H) \
2288169699Skan   $(TREE_H) $(TARGET_H)
2289169699Skancgraph.o : cgraph.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
2290169699Skan   langhooks.h toplev.h $(FLAGS_H) $(GGC_H) $(TARGET_H) $(CGRAPH_H) \
2291169699Skan   gt-cgraph.h output.h intl.h $(BASIC_BLOCK_H) debug.h $(HASHTAB_H) \
2292169699Skan   $(TREE_INLINE_H) $(VARRAY_H) $(TREE_DUMP_H)
2293169699Skancgraphunit.o : cgraphunit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2294169699Skan   $(TREE_H) langhooks.h $(TREE_INLINE_H) toplev.h $(FLAGS_H) $(GGC_H) \
2295169699Skan   $(TARGET_H) $(CGRAPH_H) intl.h pointer-set.h $(FUNCTION_H) $(TREE_GIMPLE_H) \
2296169699Skan   $(TREE_FLOW_H) tree-pass.h $(C_COMMON_H) debug.h $(DIAGNOSTIC_H) \
2297169699Skan   $(FIBHEAP_H) output.h $(PARAMS_H) $(RTL_H) $(TIMEVAR_H) ipa-prop.h \
2298169699Skan   gt-cgraphunit.h
2299169699Skanipa.o : ipa.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(CGRAPH_H) 
2300169699Skanipa-prop.o : ipa-prop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h  \
2301169699Skan   langhooks.h $(GGC_H) $(TARGET_H) $(CGRAPH_H) ipa-prop.h \
2302169699Skan   $(TREE_FLOW_H) $(TM_H) tree-pass.h $(FLAGS_H) $(TREE_H)
2303169699Skanipa-cp.o : ipa-cp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h  \
2304169699Skan   langhooks.h $(TARGET_H) $(CGRAPH_H) ipa-prop.h  \
2305169699Skan   $(TREE_FLOW_H) $(TM_H) tree-pass.h $(FLAGS_H) $(TREE_H) $(DIAGNOSTIC_H)
2306169699Skanipa-inline.o : ipa-inline.c gt-ipa-inline.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2307169699Skan   $(TREE_H) langhooks.h $(TREE_INLINE_H) $(FLAGS_H) $(CGRAPH_H) intl.h \
2308169699Skan   $(DIAGNOSTIC_H) $(FIBHEAP_H) $(PARAMS_H) $(TIMEVAR_H) tree-pass.h \
2309169699Skan   $(COVERAGE_H) $(HASHTAB_H) 
2310169699Skanipa-utils.o : ipa-utils.c $(IPA_UTILS_H) $(CONFIG_H) $(SYSTEM_H) \
2311169699Skan   coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
2312169699Skan   pointer-set.h $(GGC_H) $(C_COMMON_H) $(TREE_GIMPLE_H) \
2313169699Skan   $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h $(DIAGNOSTIC_H) 
2314169699Skanipa-reference.o : ipa-reference.c $(CONFIG_H) $(SYSTEM_H) \
2315169699Skan   coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
2316169699Skan   pointer-set.h $(GGC_H) $(IPA_REFERENCE_H) $(IPA_UTILS_H) $(C_COMMON_H) \
2317169699Skan   $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h \
2318169699Skan   $(DIAGNOSTIC_H) $(FUNCTION_H) 
231918334Speter
2320169699Skanipa-pure-const.o : ipa-pure-const.c $(CONFIG_H) $(SYSTEM_H) \
2321169699Skan   coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
2322169699Skan   pointer-set.h $(GGC_H) $(IPA_UTILS_H) $(C_COMMON_H) $(TARGET_H) \
2323169699Skan   $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h $(DIAGNOSTIC_H)  
2324169699Skanipa-type-escape.o : ipa-type-escape.c $(CONFIG_H) $(SYSTEM_H) \
2325169699Skan   coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
2326169699Skan   pointer-set.h $(GGC_H) $(IPA_TYPE_ESCAPE_H) $(IPA_UTILS_H) $(C_COMMON_H) \
2327169699Skan   $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h \
2328169699Skan   $(DIAGNOSTIC_H) $(FUNCTION_H) 
2329169699Skan
2330169699Skancoverage.o : coverage.c $(GCOV_IO_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2331169699Skan   $(TM_H) $(RTL_H) $(TREE_H) $(FLAGS_H) output.h $(REGS_H) $(EXPR_H) \
2332169699Skan   $(FUNCTION_H) toplev.h $(GGC_H) langhooks.h $(COVERAGE_H) gt-coverage.h \
2333169699Skan   $(HASHTAB_H) $(CGRAPH_H) tree-iterator.h
2334169699Skancselib.o : cselib.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2335169699Skan   $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h $(RECOG_H) \
2336169699Skan   $(EMIT_RTL_H) toplev.h output.h $(FUNCTION_H) cselib.h $(GGC_H) $(TM_P_H) \
2337169699Skan   gt-cselib.h $(PARAMS_H) alloc-pool.h $(HASHTAB_H) $(TARGET_H)
2338132727Skancse.o : cse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
2339169699Skan   hard-reg-set.h $(FLAGS_H) insn-config.h $(RECOG_H) $(EXPR_H) toplev.h \
2340169699Skan   output.h $(FUNCTION_H) $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H) \
2341169699Skan   except.h $(TARGET_H) $(PARAMS_H) rtlhooks-def.h tree-pass.h $(REAL_H)
2342169699Skanweb.o : web.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2343169699Skan   hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h toplev.h \
2344169699Skan   $(DF_H) $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h
2345169699Skansee.o : see.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2346169699Skan   hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h toplev.h \
2347169699Skan   $(DF_H) $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h $(EXPR_H)
2348169699Skangcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2349169699Skan   $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h $(GGC_H) \
2350169699Skan   $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h toplev.h \
2351169699Skan   $(TM_P_H) $(PARAMS_H) except.h gt-gcse.h $(TREE_H) cselib.h $(TIMEVAR_H) \
2352169699Skan   intl.h $(OBSTACK_H) tree-pass.h
2353169699Skanresource.o : resource.c $(CONFIG_H) $(RTL_H) hard-reg-set.h $(SYSTEM_H) \
2354169699Skan   coretypes.h $(TM_H) $(REGS_H) $(FLAGS_H) output.h $(RESOURCE_H) \
2355169699Skan   $(FUNCTION_H) toplev.h $(INSN_ATTR_H) except.h $(PARAMS_H) $(TM_P_H)
2356132727Skanlcm.o : lcm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
2357169699Skan   hard-reg-set.h $(FLAGS_H) insn-config.h $(INSN_ATTR_H) $(RECOG_H) \
2358169699Skan   $(BASIC_BLOCK_H) $(TM_P_H) $(FUNCTION_H) output.h $(REAL_H)
2359169699Skanmode-switching.o : mode-switching.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2360169699Skan   $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2361169699Skan   $(INSN_ATTR_H) $(RECOG_H) $(BASIC_BLOCK_H) $(TM_P_H) $(FUNCTION_H) \
2362169699Skan   output.h tree-pass.h $(TIMEVAR_H) $(REAL_H)
2363169699Skantree-ssa-dce.o : tree-ssa-dce.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2364169699Skan    $(RTL_H) $(TM_P_H) $(TREE_FLOW_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) $(TM_H) \
2365169699Skan    coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) $(BASIC_BLOCK_H) \
2366169699Skan    $(GGC_H) hard-reg-set.h $(OBSTACK_H) $(TREE_GIMPLE_H) $(CFGLOOP_H) \
2367169699Skan    $(SCEV_H)
2368169699Skantree-ssa-ccp.o : tree-ssa-ccp.c $(TREE_FLOW_H) $(CONFIG_H) \
2369169699Skan   $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
2370169699Skan   $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
2371169699Skan   $(TREE_DUMP_H) $(BASIC_BLOCK_H) tree-pass.h langhooks.h \
2372169699Skan   tree-ssa-propagate.h $(FLAGS_H) $(TARGET_H) toplev.h
2373169699Skantree-sra.o : tree-sra.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) \
2374169699Skan    $(TM_P_H) $(TREE_FLOW_H) $(DIAGNOSTIC_H) $(TREE_INLINE_H) \
2375169699Skan    $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) $(TREE_GIMPLE_H) \
2376169699Skan    langhooks.h tree-pass.h $(FLAGS_H) $(EXPR_H) $(BASIC_BLOCK_H) \
2377169699Skan    bitmap.h $(GGC_H) hard-reg-set.h $(OBSTACK_H) $(PARAMS_H) $(TARGET_H)
2378169699Skantree-complex.o : tree-complex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
2379169699Skan    $(TM_H) $(RTL_H) $(REAL_H) $(FLAGS_H) $(TREE_FLOW_H) $(TREE_GIMPLE_H) \
2380169699Skan    tree-iterator.h tree-pass.h tree-ssa-propagate.h $(DIAGNOSTIC_H)
2381169699Skantree-vect-generic.o : tree-vect-generic.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
2382169699Skan    $(TM_H) $(TREE_FLOW_H) $(TREE_GIMPLE_H) tree-iterator.h tree-pass.h \
2383169699Skan    $(FLAGS_H) $(OPTABS_H) $(RTL_H) $(MACHMODE_H) $(EXPR_H) \
2384169699Skan    langhooks.h $(FLAGS_H) $(DIAGNOSTIC_H) gt-tree-vect-generic.h $(GGC_H) \
2385169699Skan    coretypes.h insn-codes.h
2386169699Skandf-core.o : df-core.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2387169699Skan   insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
2388169699Skan   hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) bitmap.h sbitmap.h \
2389169699Skan   $(TM_P_H) $(FLAGS_H) output.h tree-pass.h
2390169699Skandf-problems.o : df-problems.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2391169699Skan   $(RTL_H) insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
2392169699Skan   hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) bitmap.h sbitmap.h $(TM_P_H) \
2393169699Skan   $(FLAGS_H) output.h vecprim.h
2394169699Skandf-scan.o : df-scan.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2395169699Skan   insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
2396169699Skan   hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) bitmap.h sbitmap.h $(TM_P_H) \
2397169699Skan   $(FLAGS_H) $(TARGET_H) $(TARGET_DEF_H) $(TREE_H) output.h tree-pass.h 
2398169699Skanvar-tracking.o : var-tracking.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2399169699Skan   $(RTL_H) $(TREE_H) hard-reg-set.h insn-config.h reload.h $(FLAGS_H) \
2400169699Skan   $(BASIC_BLOCK_H) output.h sbitmap.h alloc-pool.h $(FIBHEAP_H) $(HASHTAB_H) \
2401169699Skan   $(REGS_H) $(EXPR_H) $(TIMEVAR_H) tree-pass.h
2402132727Skanconflict.o : conflict.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(OBSTACK_H) \
2403132727Skan   $(HASHTAB_H) $(RTL_H) hard-reg-set.h $(BASIC_BLOCK_H)
2404132727Skanprofile.o : profile.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2405169699Skan   $(TREE_H) $(FLAGS_H) output.h $(REGS_H) $(EXPR_H) $(FUNCTION_H) \
2406169699Skan   toplev.h $(COVERAGE_H) $(TREE_FLOW_H) value-prof.h cfghooks.h \
2407169699Skan   $(CFGLOOP_H) $(TIMEVAR_H) tree-pass.h
2408169699Skantree-profile.o : tree-profile.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2409169699Skan   $(TM_H) $(RTL_H) $(TREE_H) $(FLAGS_H) output.h $(REGS_H) $(EXPR_H) \
2410169699Skan   $(FUNCTION_H) toplev.h $(COVERAGE_H) $(TREE_H) value-prof.h $(TREE_DUMP_H) \
2411169699Skan   tree-pass.h $(TREE_FLOW_H) $(TIMEVAR_H) $(GGC_H) gt-tree-profile.h
2412169699Skanvalue-prof.o : value-prof.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2413169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h value-prof.h $(EXPR_H) output.h $(FLAGS_H) \
2414169699Skan   $(RECOG_H) insn-config.h $(OPTABS_H) $(REGS_H) $(GGC_H) $(DIAGNOSTIC_H) \
2415169699Skan   $(TREE_H) $(COVERAGE_H) $(RTL_H) $(GCOV_IO_H) $(TREE_FLOW_H) \
2416169699Skan   tree-flow-inline.h $(TIMEVAR_H) tree-pass.h
2417169699Skanloop-doloop.o : loop-doloop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2418169699Skan   $(RTL_H) $(FLAGS_H) $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) $(TM_P_H) \
2419169699Skan   toplev.h $(CFGLOOP_H) output.h $(PARAMS_H) $(TARGET_H)
2420132727Skanalloc-pool.o : alloc-pool.c $(CONFIG_H) $(SYSTEM_H) alloc-pool.h $(HASHTAB_H)
2421169699Skanflow.o : flow.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2422169699Skan   $(TREE_H) $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) \
2423169699Skan   hard-reg-set.h output.h toplev.h $(RECOG_H) $(FUNCTION_H) except.h \
2424169699Skan   $(EXPR_H) $(TM_P_H) $(OBSTACK_H) $(SPLAY_TREE_H) $(TIMEVAR_H) tree-pass.h
2425169699Skancfg.o : cfg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(FLAGS_H) \
2426169699Skan   $(REGS_H) hard-reg-set.h output.h toplev.h $(FUNCTION_H) except.h $(GGC_H) \
2427169699Skan   $(TM_P_H) $(TIMEVAR_H) $(OBSTACK_H) $(TREE_H) alloc-pool.h $(HASHTAB_H)
2428169699Skancfghooks.o: cfghooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2429169699Skan   $(TREE_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) $(TIMEVAR_H) toplev.h
2430169699Skancfgexpand.o : cfgexpand.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
2431169699Skan   $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) \
2432169699Skan   coretypes.h $(TREE_DUMP_H) except.h langhooks.h tree-pass.h $(RTL_H) \
2433169699Skan   $(DIAGNOSTIC_H) toplev.h $(BASIC_BLOCK_H) $(FLAGS_H) debug.h $(PARAMS_H)
2434169699Skancfgrtl.o : cfgrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2435169699Skan   $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h \
2436169699Skan   output.h toplev.h $(FUNCTION_H) except.h $(TM_P_H) insn-config.h $(EXPR_H) \
2437169699Skan   $(CFGLAYOUT_H) $(CFGLOOP_H) $(OBSTACK_H) $(TARGET_H) $(TREE_H) \
2438169699Skan   tree-pass.h
2439132727Skancfganal.o : cfganal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2440169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h insn-config.h $(RECOG_H) $(TM_P_H) \
2441169699Skan   $(TIMEVAR_H) $(OBSTACK_H) toplev.h
2442169699Skancfgbuild.o : cfgbuild.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2443169699Skan   $(FLAGS_H) $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h \
2444169699Skan   $(FUNCTION_H) except.h $(TIMEVAR_H) $(TREE_H)
2445132727Skancfgcleanup.o : cfgcleanup.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2446169699Skan   $(RTL_H) $(TIMEVAR_H) hard-reg-set.h output.h $(FLAGS_H) $(RECOG_H) \
2447169699Skan   toplev.h insn-config.h cselib.h $(TARGET_H) $(TM_P_H) $(PARAMS_H) \
2448169699Skan   $(REGS_H) $(EMIT_RTL_H) $(CFGLAYOUT_H) tree-pass.h $(CFGLOOP_H) $(EXPR_H)
2449132727Skancfgloop.o : cfgloop.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) coretypes.h $(TM_H) \
2450169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(FLAGS_H) $(FUNCTION_H) \
2451169699Skan   $(OBSTACK_H) toplev.h $(TREE_FLOW_H) $(TREE_H)
2452132727Skancfgloopanal.o : cfgloopanal.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
2453169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(EXPR_H) coretypes.h $(TM_H) \
2454169699Skan   $(OBSTACK_H) output.h
2455169699Skanstruct-equiv.o : struct-equiv.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2456169699Skan   $(RTL_H) hard-reg-set.h output.h $(FLAGS_H) $(RECOG_H) \
2457169699Skan   insn-config.h $(TARGET_H) $(TM_P_H) $(PARAMS_H) \
2458169699Skan   $(REGS_H) $(EMIT_RTL_H)
2459169699Skanloop-iv.o : loop-iv.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(BASIC_BLOCK_H) \
2460169699Skan   hard-reg-set.h $(CFGLOOP_H) $(EXPR_H) coretypes.h $(TM_H) $(OBSTACK_H) \
2461169699Skan   output.h intl.h $(DF_H) $(HASHTAB_H)
2462169699Skanloop-invariant.o : loop-invariant.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
2463169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(EXPR_H) coretypes.h \
2464169699Skan   $(TM_H) $(TM_P_H) $(FUNCTION_H) $(FLAGS_H) $(DF_H) $(OBSTACK_H) output.h \
2465169699Skan   $(HASHTAB_H) except.h
2466132727Skancfgloopmanip.o : cfgloopmanip.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
2467169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) output.h \
2468169699Skan   coretypes.h $(TM_H) cfghooks.h $(OBSTACK_H)
2469132727Skanloop-init.o : loop-init.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
2470169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) \
2471169699Skan   coretypes.h $(TM_H) $(OBSTACK_H) tree-pass.h $(TIMEVAR_H) $(FLAGS_H)
2472132727Skanloop-unswitch.o : loop-unswitch.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TM_H) \
2473169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) $(PARAMS_H) \
2474169699Skan   output.h $(EXPR_H) coretypes.h $(TM_H) $(OBSTACK_H)
2475132727Skanloop-unroll.o: loop-unroll.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TM_H) \
2476169699Skan   $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) $(PARAMS_H) \
2477169699Skan   output.h $(EXPR_H) coretypes.h $(TM_H) $(HASHTAB_H) $(RECOG_H) \
2478169699Skan   $(OBSTACK_H)
2479132727Skandominance.o : dominance.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2480169699Skan   hard-reg-set.h $(BASIC_BLOCK_H) et-forest.h $(OBSTACK_H) toplev.h $(TIMEVAR_H)
2481169699Skanet-forest.o : et-forest.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2482169699Skan   et-forest.h alloc-pool.h $(BASIC_BLOCK_H)
2483169699Skancombine.o : combine.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2484169699Skan   $(FLAGS_H) $(FUNCTION_H) insn-config.h $(INSN_ATTR_H) $(REGS_H) $(EXPR_H) \
2485169699Skan   rtlhooks-def.h $(BASIC_BLOCK_H) $(RECOG_H) $(REAL_H) hard-reg-set.h \
2486169699Skan   toplev.h $(TM_P_H) $(TREE_H) $(TARGET_H) output.h $(PARAMS_H) $(OPTABS_H) \
2487169699Skan   insn-codes.h $(TIMEVAR_H) tree-pass.h
2488132727Skanregclass.o : regclass.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2489169699Skan   hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(REGS_H) insn-config.h \
2490169699Skan   $(RECOG_H) reload.h $(REAL_H) toplev.h $(FUNCTION_H) output.h $(GGC_H) \
2491169699Skan   $(TM_P_H) $(EXPR_H) $(TIMEVAR_H) gt-regclass.h $(HASHTAB_H) \
2492169699Skan   $(TARGET_H)
2493169699Skanlocal-alloc.o : local-alloc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2494169699Skan   $(RTL_H) $(FLAGS_H) $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
2495169699Skan   output.h $(FUNCTION_H) $(INSN_ATTR_H) toplev.h  except.h reload.h $(TM_P_H) \
2496169699Skan   $(GGC_H) $(INTEGRATE_H) $(TIMEVAR_H) tree-pass.h
2497169699Skanbitmap.o : bitmap.c $(CONFIG_H) $(SYSTEM_H)  coretypes.h $(TM_H) $(RTL_H) \
2498169699Skan   $(FLAGS_H) $(GGC_H) gt-bitmap.h bitmap.h $(OBSTACK_H)
2499169699Skanglobal.o : global.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2500169699Skan   $(FLAGS_H) reload.h $(FUNCTION_H) $(RECOG_H) $(REGS_H) hard-reg-set.h \
2501169699Skan   insn-config.h output.h toplev.h $(TM_P_H) $(MACHMODE_H) tree-pass.h \
2502169699Skan   $(TIMEVAR_H) vecprim.h
2503169699Skanvarray.o : varray.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) \
2504169699Skan   $(HASHTAB_H) $(BCONFIG_H) $(VARRAY_H) toplev.h
2505169699Skanvec.o : vec.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) coretypes.h vec.h $(GGC_H) \
2506169699Skan   toplev.h
2507169699Skanreload.o : reload.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2508169699Skan   $(FLAGS_H) output.h $(EXPR_H) $(OPTABS_H) reload.h $(RECOG_H) \
2509169699Skan   hard-reg-set.h insn-config.h $(REGS_H) $(FUNCTION_H) toplev.h \
2510169699Skan   addresses.h $(TM_P_H) $(PARAMS_H) $(TARGET_H) $(REAL_H)
2511169699Skanreload1.o : reload1.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
251290081Sobrien   $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) hard-reg-set.h insn-config.h \
2513169699Skan   $(BASIC_BLOCK_H) $(RECOG_H) output.h $(FUNCTION_H) toplev.h $(TM_P_H) \
2514169699Skan   addresses.h except.h $(TREE_H) $(REAL_H) $(FLAGS_H) $(MACHMODE_H) \
2515169699Skan   $(OBSTACK_H) $(TARGET_H)
2516169699Skanrtlhooks.o :  rtlhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2517169699Skan   rtlhooks-def.h $(EXPR_H) $(RECOG_H)
2518169699Skanpostreload.o : postreload.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2519169699Skan   $(RTL_H) $(REAL_H) $(FLAGS_H) $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) \
2520169699Skan   hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) output.h \
2521169699Skan   $(FUNCTION_H) toplev.h cselib.h $(TM_P_H) except.h $(TREE_H) $(MACHMODE_H) \
2522169699Skan   $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h
2523169699Skanpostreload-gcse.o : postreload-gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
2524169699Skan   $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2525169699Skan   $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h toplev.h \
2526169699Skan   $(TM_P_H) except.h $(TREE_H) $(TARGET_H) $(HASHTAB_H) intl.h $(OBSTACK_H) \
2527169699Skan   $(PARAMS_H) $(TIMEVAR_H) tree-pass.h $(REAL_H)
2528132727Skancaller-save.o : caller-save.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2529169699Skan   $(FLAGS_H) $(REGS_H) hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(FUNCTION_H) \
2530169699Skan   addresses.h $(RECOG_H) reload.h $(EXPR_H) toplev.h $(TM_P_H)
2531169699Skanbt-load.o : bt-load.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) except.h \
2532169699Skan   $(RTL_H) hard-reg-set.h $(REGS_H) $(TM_P_H) $(FIBHEAP_H) output.h $(EXPR_H) \
2533169699Skan   $(TARGET_H) $(FLAGS_H) $(INSN_ATTR_H) $(FUNCTION_H) tree-pass.h toplev.h
2534169699Skanreorg.o : reorg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2535169699Skan   conditions.h hard-reg-set.h $(BASIC_BLOCK_H) $(REGS_H) insn-config.h \
2536169699Skan   $(INSN_ATTR_H) except.h $(RECOG_H) $(FUNCTION_H) $(FLAGS_H) output.h \
2537169699Skan   $(EXPR_H) toplev.h $(PARAMS_H) $(TM_P_H) $(OBSTACK_H) $(RESOURCE_H) \
2538169699Skan   $(TIMEVAR_H) $(TARGET_H) tree-pass.h
2539169699Skanalias.o : alias.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2540169699Skan   $(FLAGS_H) hard-reg-set.h $(BASIC_BLOCK_H) $(REGS_H) toplev.h output.h \
2541169699Skan   $(ALIAS_H) $(EMIT_RTL_H) $(GGC_H) $(FUNCTION_H) cselib.h $(TREE_H) $(TM_P_H) \
2542169699Skan   langhooks.h $(TARGET_H) gt-alias.h $(TIMEVAR_H) $(CGRAPH_H) \
2543169699Skan   $(SPLAY_TREE_H) $(VARRAY_H) $(IPA_TYPE_ESCAPE_H) tree-pass.h
2544169699Skanregmove.o : regmove.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2545169699Skan   insn-config.h $(TIMEVAR_H) tree-pass.h \
2546169699Skan   $(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
254790081Sobrien   $(EXPR_H) $(BASIC_BLOCK_H) toplev.h $(TM_P_H) except.h reload.h
2548169699Skanddg.o : ddg.c $(DDG_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) \
2549169699Skan   toplev.h $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) \
2550169699Skan   $(FLAGS_H) insn-config.h $(INSN_ATTR_H) except.h $(RECOG_H) \
2551169699Skan   $(SCHED_INT_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(EXPR_H) bitmap.h $(DF_H) \
2552169699Skan   hard-reg-set.h sbitmap.h $(TM_H)
2553169699Skanmodulo-sched.o : modulo-sched.c $(DDG_H) $(CONFIG_H) $(CONFIG_H) $(SYSTEM_H) \
2554169699Skan   coretypes.h $(TARGET_H) toplev.h $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) \
2555169699Skan   $(FLAGS_H) insn-config.h $(INSN_ATTR_H) except.h $(RECOG_H) \
2556169699Skan   $(SCHED_INT_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(EXPR_H) $(PARAMS_H) \
2557169699Skan   cfghooks.h $(DF_H) $(GCOV_IO_H) hard-reg-set.h $(TM_H) $(TIMEVAR_H) \
2558169699Skan   tree-pass.h
2559169699Skanhaifa-sched.o : haifa-sched.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2560169699Skan   $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2561169699Skan   $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H) \
2562169699Skan   $(TARGET_H) output.h $(PARAMS_H)
2563169699Skansched-deps.o : sched-deps.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2564169699Skan   $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2565169699Skan   $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h cselib.h \
2566169699Skan   $(PARAMS_H) $(TM_P_H) $(DF_H)
2567169699Skansched-rgn.o : sched-rgn.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2568169699Skan   $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2569169699Skan   $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(PARAMS_H) \
2570169699Skan   $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h
2571169699Skansched-ebb.o : sched-ebb.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2572169699Skan   $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
2573169699Skan   $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H) \
2574169699Skan   $(PARAMS_H) $(CFGLAYOUT_H) $(TARGET_H) output.h
2575169699Skansched-vis.o : sched-vis.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2576169699Skan   $(RTL_H) $(SCHED_INT_H) hard-reg-set.h $(BASIC_BLOCK_H) $(OBSTACK_H) \
2577169699Skan   $(TM_P_H) $(REAL_H) toplev.h tree-pass.h
2578169699Skanfinal.o : final.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2579169699Skan   $(TREE_H) $(FLAGS_H) intl.h $(REGS_H) $(RECOG_H) conditions.h \
2580169699Skan   insn-config.h $(INSN_ATTR_H) $(FUNCTION_H) output.h hard-reg-set.h \
2581169699Skan   except.h debug.h xcoffout.h toplev.h reload.h dwarf2out.h tree-pass.h \
2582169699Skan   $(BASIC_BLOCK_H) $(TM_P_H) $(TARGET_H) $(EXPR_H) $(CFGLAYOUT_H) dbxout.h \
2583169699Skan   $(TIMEVAR_H) $(CGRAPH_H) $(COVERAGE_H) $(REAL_H)
2584169699Skanrecog.o : recog.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2585169699Skan   $(FUNCTION_H) $(BASIC_BLOCK_H) $(REGS_H) $(RECOG_H) $(EXPR_H) \
2586169699Skan   $(FLAGS_H) insn-config.h $(INSN_ATTR_H) toplev.h output.h reload.h \
2587169699Skan   addresses.h $(TM_P_H) $(TIMEVAR_H) tree-pass.h hard-reg-set.h $(REAL_H)
2588169699Skanreg-stack.o : reg-stack.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2589169699Skan   $(RTL_H) $(TREE_H) $(RECOG_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) \
2590169699Skan   insn-config.h toplev.h reload.h $(FUNCTION_H) $(TM_P_H) $(GGC_H) \
2591169699Skan   $(BASIC_BLOCK_H) output.h $(VARRAY_H) $(TIMEVAR_H) tree-pass.h \
2592169699Skan   $(TARGET_H) vecprim.h
2593132727Skansreal.o: sreal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) sreal.h
2594169699Skanpredict.o: predict.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2595169699Skan   $(TREE_H) $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) \
2596169699Skan   hard-reg-set.h output.h toplev.h $(RECOG_H) $(FUNCTION_H) except.h \
2597169699Skan   $(TM_P_H) $(PREDICT_H) sreal.h $(PARAMS_H) $(TARGET_H) $(CFGLOOP_H) \
2598169699Skan   $(COVERAGE_H) $(SCEV_H) $(GGC_H) predict.def $(TIMEVAR_H) $(TREE_DUMP_H) \
2599169699Skan   $(TREE_FLOW_H) tree-pass.h $(EXPR_H)
2600169699Skanlists.o: lists.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \
2601169699Skan   $(RTL_H) $(GGC_H) gt-lists.h
2602132727Skanbb-reorder.o : bb-reorder.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2603169699Skan   $(RTL_H) $(FLAGS_H) $(TIMEVAR_H) output.h $(CFGLAYOUT_H) $(FIBHEAP_H) \
2604169699Skan   $(TARGET_H) $(FUNCTION_H) $(TM_P_H) $(OBSTACK_H) $(EXPR_H) $(REGS_H) \
2605169699Skan   $(PARAMS_H) toplev.h tree-pass.h
2606169699Skantracer.o : tracer.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2607169699Skan   $(TREE_H) $(BASIC_BLOCK_H) hard-reg-set.h output.h $(CFGLAYOUT_H) \
2608169699Skan   $(FLAGS_H) $(TIMEVAR_H) $(PARAMS_H) $(COVERAGE_H) $(FIBHEAP_H) \
2609169699Skan   tree-pass.h
2610132727Skancfglayout.o : cfglayout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2611132727Skan   $(RTL_H) $(TREE_H) insn-config.h $(BASIC_BLOCK_H) hard-reg-set.h output.h \
2612169699Skan   $(FUNCTION_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(TARGET_H) gt-cfglayout.h \
2613169699Skan   $(GGC_H) alloc-pool.h $(FLAGS_H) $(OBSTACK_H) tree-pass.h vecprim.h
2614169699Skantimevar.o : timevar.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2615169699Skan   $(TIMEVAR_H) $(FLAGS_H) intl.h toplev.h $(RTL_H) timevar.def
2616169699Skanregrename.o : regrename.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
2617169699Skan   $(RTL_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h \
2618169699Skan   output.h $(RECOG_H) $(FUNCTION_H) $(OBSTACK_H) $(FLAGS_H) $(TM_P_H) \
2619169699Skan   addresses.h reload.h toplev.h $(TIMEVAR_H) tree-pass.h
2620132727Skanifcvt.o : ifcvt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
2621169699Skan   $(REGS_H) toplev.h $(FLAGS_H) insn-config.h $(FUNCTION_H) $(RECOG_H) \
2622169699Skan   $(TARGET_H) $(BASIC_BLOCK_H) $(EXPR_H) output.h except.h $(TM_P_H) \
2623169699Skan   $(REAL_H) $(OPTABS_H) $(CFGLOOP_H) hard-reg-set.h $(TIMEVAR_H) tree-pass.h
2624169699Skanlambda-mat.o : lambda-mat.c $(LAMBDA_H) $(GGC_H) $(SYSTEM_H) $(CONFIG_H) \
2625169699Skan   $(TM_H) coretypes.h $(TREE_H)
2626169699Skanlambda-trans.o: lambda-trans.c $(LAMBDA_H) $(GGC_H) $(SYSTEM_H) $(CONFIG_H) \
2627169699Skan   $(TM_H) coretypes.h $(TARGET_H) $(TREE_H)
2628169699Skanlambda-code.o: lambda-code.c $(LAMBDA_H) $(GGC_H) $(SYSTEM_H) $(CONFIG_H) \
2629169699Skan   $(TM_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) \
2630169699Skan   $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) \
2631169699Skan   $(TREE_DATA_REF_H) $(SCEV_H) $(EXPR_H) coretypes.h $(TARGET_H) \
2632169699Skan   tree-chrec.h tree-pass.h vec.h vecprim.h
2633132727Skanparams.o : params.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(PARAMS_H) toplev.h
2634169699Skanpointer-set.o: pointer-set.c pointer-set.h $(CONFIG_H) $(SYSTEM_H)
2635132727Skanhooks.o: hooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(HOOKS_H)
2636169699Skanpretty-print.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h intl.h $(PRETTY_PRINT_H) \
2637169699Skan   $(TREE_H)
2638169699Skanerrors.o : errors.c $(CONFIG_H) $(SYSTEM_H) errors.h $(BCONFIG_H)
263918334Speter
2640169699Skan$(out_object_file): $(out_file) $(CONFIG_H) coretypes.h $(TM_H) $(TREE_H) \
2641169699Skan   $(RTL_H) $(REGS_H) hard-reg-set.h insn-config.h conditions.h \
264290081Sobrien   output.h $(INSN_ATTR_H) $(SYSTEM_H) toplev.h $(TARGET_H) libfuncs.h \
2643169699Skan   $(TARGET_DEF_H) $(FUNCTION_H) $(SCHED_INT_H) $(TM_P_H) $(EXPR_H) \
2644169699Skan   langhooks.h $(GGC_H) $(OPTABS_H) $(REAL_H) tm-constrs.h
2645169699Skan	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
264690081Sobrien		$(out_file) $(OUTPUT_OPTION)
264718334Speter
264818334Speter# Build auxiliary files that support ecoff format.
264918334Spetermips-tfile: mips-tfile.o version.o $(LIBDEPS)
265018334Speter	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tfile.o version.o $(LIBS)
265118334Speter
2652169699Skanmips-tfile.o : mips-tfile.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) coretypes.h \
2653169699Skan   $(TM_H) version.h $(srcdir)/../include/getopt.h gstab.h intl.h
265418334Speter
265518334Spetermips-tdump: mips-tdump.o version.o $(LIBDEPS)
265618334Speter	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tdump.o version.o $(LIBS)
265718334Speter
2658169699Skanmips-tdump.o : mips-tdump.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) coretypes.h \
2659169699Skan   $(TM_H) version.h $(srcdir)/../include/getopt.h stab.def
266018334Speter
2661132727Skan# FIXME: writing proper dependencies for this is a *LOT* of work.
2662132727Skanlibbackend.o : $(OBJS-common:.o=.c) $(out_file) \
2663132727Skan  insn-config.h insn-flags.h insn-codes.h insn-constants.h \
2664169699Skan  insn-attr.h  $(DATESTAMP) $(BASEVER) $(DEVPHASE)
2665169699Skan	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
2666132727Skan	  -DTARGET_NAME=\"$(target_noncanonical)\" \
2667132727Skan	  -DLOCALEDIR=\"$(localedir)\" \
2668169699Skan	  -c $(filter %.c,$^) -o $@  \
2669169699Skan	  -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
2670169699Skan	  -DDEVPHASE=$(DEVPHASE_s) -combine
2671132727Skan
267250448Sobrien#
267390081Sobrien# Generate header and source files from the machine description,
267418334Speter# and compile them.
267518334Speter
267690081Sobrien.PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \
267718334Speter  insn-emit.c insn-recog.c insn-extract.c insn-output.c insn-peep.c \
2678169699Skan  insn-attr.h insn-attrtab.c insn-preds.c
267918334Speter
2680169699Skan# Dependencies for the md file.  The first time through, we just assume
2681169699Skan# the md file itself and the generated dependency file (in order to get
2682169699Skan# it built).  The second time through we have the dependency file.
2683169699Skan-include mddeps.mk
2684169699SkanMD_DEPS = s-mddeps $(md_file) $(MD_INCLUDES)
268518334Speter
2686169699Skans-mddeps: $(md_file) $(MD_INCLUDES) build/genmddeps$(build_exeext)
2687169699Skan	$(RUN_GEN) build/genmddeps$(build_exeext) $(md_file) > tmp-mddeps
2688169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-mddeps mddeps.mk
2689169699Skan	$(STAMP) s-mddeps
269018334Speter
2691169699Skan# Header dependencies for generated source files.
2692169699Skangenrtl.o : genrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	$(RTL_H)\
2693169699Skan  $(GGC_H)
2694169699Skaninsn-attrtab.o : insn-attrtab.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2695169699Skan  $(TM_H) $(RTL_H) $(REGS_H) $(REAL_H) output.h $(INSN_ATTR_H)		\
2696169699Skan  insn-config.h toplev.h $(RECOG_H) $(TM_P_H) $(FLAGS_H)
2697169699Skaninsn-automata.o : insn-automata.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2698169699Skan  $(TM_H) $(RTL_H) $(REGS_H) $(REAL_H) output.h $(INSN_ATTR_H)		\
2699169699Skan  insn-config.h toplev.h $(RECOG_H) $(TM_P_H) $(FLAGS_H)
2700169699Skaninsn-emit.o : insn-emit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	\
2701169699Skan  $(RTL_H) $(EXPR_H) $(REAL_H) output.h insn-config.h $(OPTABS_H)	\
2702169699Skan  reload.h $(RECOG_H) toplev.h $(FUNCTION_H) $(FLAGS_H) hard-reg-set.h	\
2703169699Skan  $(RESOURCE_H) $(TM_P_H) $(BASIC_BLOCK_H) tm-constrs.h
2704169699Skaninsn-extract.o : insn-extract.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2705169699Skan  $(TM_H) $(RTL_H) toplev.h insn-config.h $(RECOG_H)
2706169699Skaninsn-modes.o : insn-modes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	$(TM_H) \
2707169699Skan  $(MACHMODE_H) $(REAL_H)
2708169699Skaninsn-opinit.o : insn-opinit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2709169699Skan  $(TM_H) $(RTL_H) insn-config.h $(FLAGS_H) $(RECOG_H) $(EXPR_H)	\
2710169699Skan  $(OPTABS_H) reload.h
2711169699Skaninsn-output.o : insn-output.c $(CONFIG_H) $(SYSTEM_H) coretypes.h	\
2712169699Skan  $(TM_H) $(RTL_H) $(GGC_H) $(REGS_H) $(REAL_H) conditions.h		\
2713169699Skan  hard-reg-set.h insn-config.h $(INSN_ATTR_H) $(EXPR_H) output.h	\
2714169699Skan  $(RECOG_H) $(FUNCTION_H) toplev.h $(FLAGS_H) insn-codes.h $(TM_P_H)	\
2715169699Skan  $(TARGET_H) tm-constrs.h
2716169699Skaninsn-peep.o : insn-peep.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	\
2717169699Skan  $(RTL_H) $(REGS_H) output.h insn-config.h $(RECOG_H) except.h		\
2718169699Skan  $(FUNCTION_H) $(TM_P_H) $(REAL_H) tm-constrs.h
2719169699Skaninsn-preds.o : insn-preds.c $(CONFIG_H) $(SYSTEM_H) coretypes.h		\
2720169699Skan  $(TM_H) $(RTL_H) $(TREE_H) insn-config.h $(RECOG_H) output.h		\
2721169699Skan  $(FLAGS_H) $(FUNCTION_H) hard-reg-set.h $(RESOURCE_H) $(TM_P_H)	\
2722169699Skan  toplev.h reload.h $(REGS_H) $(REAL_H) tm-constrs.h
2723169699Skaninsn-recog.o : insn-recog.c $(CONFIG_H) $(SYSTEM_H) coretypes.h		\
2724169699Skan  $(TM_H) $(RTL_H) insn-config.h $(RECOG_H) output.h $(FLAGS_H)		\
2725169699Skan  $(FUNCTION_H) hard-reg-set.h $(RESOURCE_H) $(TM_P_H) toplev.h		\
2726169699Skan  reload.h $(REAL_H) tm-constrs.h
272718334Speter
2728169699Skan# For each of the files generated by running a generator program over
2729169699Skan# the machine description, the following pair of static pattern rules
2730169699Skan# runs the generator program only if the machine description has changed,
2731169699Skan# but touches the target file only when its contents actually change.
2732169699Skan# The "; @true" construct forces Make to recheck the timestamp on the
2733169699Skan# target file.
273418334Speter
2735169699Skansimple_generated_h = insn-attr.h insn-codes.h insn-config.h insn-flags.h 
273618334Speter
2737169699Skansimple_generated_c = insn-attrtab.c insn-automata.c insn-emit.c \
2738169699Skan		     insn-extract.c insn-opinit.c insn-output.c \
2739169699Skan		     insn-peep.c insn-recog.c
2740117404Skan
2741169699Skan$(simple_generated_h): insn-%.h: s-%; @true
2742117404Skan
2743169699Skan$(simple_generated_h:insn-%.h=s-%): s-%: build/gen%$(build_exeext) \
2744169699Skan  $(MD_DEPS) insn-conditions.md
2745169699Skan	$(RUN_GEN) build/gen$*$(build_exeext) $(md_file) \
2746169699Skan	  insn-conditions.md > tmp-$*.h
2747169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-$*.h insn-$*.h
2748169699Skan	$(STAMP) s-$*
2749117404Skan
2750169699Skan$(simple_generated_c): insn-%.c: s-%; @true
2751169699Skan$(simple_generated_c:insn-%.c=s-%): s-%: build/gen%$(build_exeext) \
2752169699Skan  $(MD_DEPS) insn-conditions.md
2753169699Skan	$(RUN_GEN) build/gen$*$(build_exeext) $(md_file) \
2754169699Skan	  insn-conditions.md > tmp-$*.c
2755169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-$*.c insn-$*.c
2756169699Skan	$(STAMP) s-$*
275718334Speter
2758169699Skan# genconstants needs to run before insn-conditions.md is available
2759169699Skan# (because the constants may be used in the conditions).
2760169699Skaninsn-constants.h: s-constants; @true
2761169699Skans-constants: build/genconstants$(build_exeext) $(MD_DEPS)
2762169699Skan	$(RUN_GEN) build/genconstants$(build_exeext) $(md_file) \
2763169699Skan	  > tmp-constants.h
2764169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-constants.h insn-constants.h
276590081Sobrien	$(STAMP) s-constants
276690081Sobrien
2767169699Skan# gencheck doesn't read the machine description, and the file produced
2768169699Skan# doesn't use the insn-* convention.
2769169699Skantree-check.h: s-check ; @true
2770169699Skans-check : build/gencheck$(build_exeext)
2771169699Skan	$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
2772169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-check.h tree-check.h
2773169699Skan	$(STAMP) s-check
277418334Speter
2775169699Skan# gencondmd doesn't use the standard naming convention.
2776169699Skanbuild/gencondmd.c: s-conditions; @true
2777169699Skans-conditions: $(MD_DEPS) build/genconditions$(build_exeext)
2778169699Skan	$(RUN_GEN) build/genconditions$(build_exeext) $(md_file) > tmp-condmd.c
2779169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-condmd.c build/gencondmd.c
2780169699Skan	$(STAMP) s-conditions
278118334Speter
2782169699Skaninsn-conditions.md: s-condmd; @true
2783169699Skans-condmd: build/gencondmd$(build_exeext)
2784169699Skan	$(RUN_GEN) build/gencondmd$(build_exeext) > tmp-cond.md
2785169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-cond.md insn-conditions.md
2786169699Skan	$(STAMP) s-condmd
278718334Speter
278818334Speter
2789169699Skan# These files are generated by running the same generator more than
2790169699Skan# once with different options, so they have custom rules.  The
2791169699Skan# stampfile idiom is the same.
2792169699Skangenrtl.c: s-genrtl; @true
2793169699Skangenrtl.h: s-genrtl-h; @true
279418334Speter
2795169699Skans-genrtl: build/gengenrtl$(build_exeext)
2796169699Skan	$(RUN_GEN) build/gengenrtl$(build_exeext) > tmp-genrtl.c
2797169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-genrtl.c genrtl.c
2798169699Skan	$(STAMP) s-genrtl
279918334Speter
2800169699Skans-genrtl-h: build/gengenrtl$(build_exeext)
2801169699Skan	$(RUN_GEN) build/gengenrtl$(build_exeext) -h > tmp-genrtl.h
2802169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-genrtl.h genrtl.h
2803169699Skan	$(STAMP) s-genrtl-h
280418334Speter
2805169699Skaninsn-modes.c: s-modes; @true
2806169699Skaninsn-modes.h: s-modes-h; @true
2807169699Skanmin-insn-modes.c: s-modes-m; @true
280818334Speter
2809169699Skans-modes: build/genmodes$(build_exeext)
2810169699Skan	$(RUN_GEN) build/genmodes$(build_exeext) > tmp-modes.c
2811169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-modes.c insn-modes.c
2812169699Skan	$(STAMP) s-modes
281318334Speter
2814169699Skans-modes-h: build/genmodes$(build_exeext)
2815169699Skan	$(RUN_GEN) build/genmodes$(build_exeext) -h > tmp-modes.h
2816169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-modes.h insn-modes.h
2817169699Skan	$(STAMP) s-modes-h
281818334Speter
2819169699Skans-modes-m: build/genmodes$(build_exeext)
2820169699Skan	$(RUN_GEN) build/genmodes$(build_exeext) -m > tmp-min-modes.c
2821169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-min-modes.c min-insn-modes.c
2822169699Skan	$(STAMP) s-modes-m
282318334Speter
2824169699Skaninsn-preds.c: s-preds; @true
2825169699Skantm-preds.h: s-preds-h; @true
2826169699Skantm-constrs.h: s-constrs-h; @true
282718334Speter
2828169699Skans-preds: $(MD_DEPS) build/genpreds$(build_exeext)
2829169699Skan	$(RUN_GEN) build/genpreds$(build_exeext) $(md_file) > tmp-preds.c
2830169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-preds.c insn-preds.c
2831169699Skan	$(STAMP) s-preds
283218334Speter
2833169699Skans-preds-h: $(MD_DEPS) build/genpreds$(build_exeext)
2834169699Skan	$(RUN_GEN) build/genpreds$(build_exeext) -h $(md_file) > tmp-preds.h
2835169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-preds.h tm-preds.h
2836169699Skan	$(STAMP) s-preds-h
283718334Speter
2838169699Skans-constrs-h: $(MD_DEPS) build/genpreds$(build_exeext)
2839169699Skan	$(RUN_GEN) build/genpreds$(build_exeext) -c $(md_file) > tmp-constrs.h
2840169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-constrs.h tm-constrs.h
2841169699Skan	$(STAMP) s-constrs-h
284250448Sobrien
2843169699SkanGTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h \
2844169699Skan  $(CPP_ID_DATA_H) $(host_xm_file_list) \
2845169699Skan  $(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \
2846169699Skan  $(srcdir)/coverage.c $(srcdir)/rtl.h \
2847169699Skan  $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/function.h $(srcdir)/libfuncs.h $(SYMTAB_H) \
2848169699Skan  $(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \
2849169699Skan  $(srcdir)/ipa-reference.h $(srcdir)/output.h \
2850132727Skan  $(srcdir)/cselib.h $(srcdir)/basic-block.h  $(srcdir)/cgraph.h \
2851169699Skan  $(srcdir)/c-common.h $(srcdir)/c-tree.h $(srcdir)/reload.h \
2852132727Skan  $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \
2853169699Skan  $(srcdir)/ipa-prop.c $(srcdir)/ipa-cp.c $(srcdir)/ipa-inline.c \
2854132727Skan  $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \
2855169699Skan  $(srcdir)/dojump.c $(srcdir)/tree-profile.c \
2856132727Skan  $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \
2857169699Skan  $(srcdir)/function.c $(srcdir)/except.h \
2858117404Skan  $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \
2859169699Skan  $(srcdir)/profile.c $(srcdir)/regclass.c \
2860169699Skan  $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c \
2861169699Skan  $(srcdir)/sdbout.c $(srcdir)/stor-layout.c \
2862132727Skan  $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \
2863169699Skan  $(srcdir)/tree-mudflap.c $(srcdir)/tree-flow.h \
2864169699Skan  $(srcdir)/c-objc-common.c $(srcdir)/c-common.c $(srcdir)/c-parser.c \
2865169699Skan  $(srcdir)/tree-ssanames.c $(srcdir)/tree-eh.c $(srcdir)/tree-ssa-address.c \
2866169699Skan  $(srcdir)/tree-phinodes.c $(srcdir)/tree-cfg.c \
2867169699Skan  $(srcdir)/tree-dfa.c $(srcdir)/tree-ssa-propagate.c \
2868169699Skan  $(srcdir)/tree-iterator.c $(srcdir)/gimplify.c \
2869169699Skan  $(srcdir)/tree-chrec.h $(srcdir)/tree-vect-generic.c \
2870169699Skan  $(srcdir)/tree-ssa-operands.h $(srcdir)/tree-ssa-operands.c \
2871169699Skan  $(srcdir)/tree-profile.c $(srcdir)/tree-nested.c \
2872169699Skan  $(srcdir)/ipa-reference.c $(srcdir)/tree-ssa-structalias.h \
2873169699Skan  $(srcdir)/tree-ssa-structalias.c \
2874169699Skan  $(srcdir)/c-pragma.h $(srcdir)/omp-low.c \
2875169699Skan  $(srcdir)/targhooks.c $(srcdir)/cgraphunit.c $(out_file) \
2876117404Skan  @all_gtfiles@
2877117404Skan
2878117404SkanGTFILES_FILES_LANGS = @all_gtfiles_files_langs@
2879117404SkanGTFILES_FILES_FILES = @all_gtfiles_files_files@
2880117404SkanGTFILES_LANG_DIR_NAMES = @subdirs@
2881117404SkanGTFILES_SRCDIR = @srcdir@
2882117404Skan
2883169699SkanGTFILES_FILES_FILES_C = $(subst $(srcdir)/,, \
2884169699Skan	$(filter %.c, $(GTFILES_FILES_FILES)))
2885169699SkanGTFILES_FILES_FILES_H = $(addprefix gt-, \
2886169699Skan	$(subst /,-,$(GTFILES_FILES_FILES_C:.c=.h)))
2887169699SkanGTFILES_LANG_DIR_NAMES_H = $(foreach d,$(GTFILES_LANG_DIR_NAMES), gtype-$(d).h)
2888169699SkanALL_GTFILES_H := $(sort $(GTFILES_FILES_FILES_H) $(GTFILES_LANG_DIR_NAMES_H))
2889169699Skan
2890169699Skan$(ALL_GTFILES_H) : s-gtype ; @true
2891169699Skan
2892169699Skan
2893132727Skangt-cgraph.h gt-coverage.h gtype-desc.h gtype-desc.c gt-except.h \
2894169699Skangt-function.h gt-integrate.h gt-tree.h gt-varasm.h \
2895132727Skangt-emit-rtl.h gt-explow.h gt-stor-layout.h gt-regclass.h \
2896169699Skangt-lists.h gt-alias.h gt-cselib.h gt-gcse.h \
2897146906Skangt-expr.h gt-sdbout.h gt-optabs.h gt-bitmap.h gt-dojump.h \
2898169699Skangt-dwarf2out.h gt-dwarf2asm.h \
2899169699Skangt-dbxout.h \
2900169699Skangtype-c.h gt-cfglayout.h \
2901169699Skangt-tree-mudflap.h gt-tree-vect-generic.h \
2902169699Skangt-tree-profile.h gt-tree-ssa-address.h \
2903169699Skangt-tree-ssanames.h gt-tree-iterator.h gt-gimplify.h \
2904169699Skangt-tree-phinodes.h gt-tree-nested.h \
2905169699Skangt-tree-ssa-operands.h gt-tree-ssa-propagate.h \
2906169699Skangt-tree-ssa-structalias.h gt-ipa-inline.h gt-cgraphunit.h \
2907169699Skangt-stringpool.h gt-targhooks.h gt-omp-low.h : s-gtype ; @true
2908117404Skan
2909169699Skandefine echo_quoted_to_gtyp
2910169699Skan echo "\"$(gtyp)\", " >> tmp-gtyp.h
2911169699Skan
2912169699Skanendef
2913169699Skan
2914169699Skangtyp-gen.h: s-gtyp-gen ; @true
2915169699Skans-gtyp-gen: Makefile
2916117404Skan	echo "/* This file is machine generated.  Do not edit.  */" > tmp-gtyp.h
2917132727Skan	echo "static const char *const srcdir = "  >> tmp-gtyp.h
2918117404Skan	echo "\"$(GTFILES_SRCDIR)\"" >> tmp-gtyp.h
2919117404Skan	echo ";" >> tmp-gtyp.h
2920132727Skan	echo "static const char *const lang_files[] = {" >> tmp-gtyp.h
2921169699Skan	$(foreach gtyp,$(GTFILES_FILES_FILES),$(echo_quoted_to_gtyp))
2922117404Skan	echo "NULL};" >> tmp-gtyp.h
2923132727Skan	echo "static const char *const langs_for_lang_files[] = {" >> tmp-gtyp.h
2924169699Skan	$(foreach gtyp,$(GTFILES_FILES_LANGS),$(echo_quoted_to_gtyp))
2925117404Skan	echo "NULL};" >> tmp-gtyp.h
2926132727Skan	echo "static const char *const all_files[] = {" >> tmp-gtyp.h
2927169699Skan	$(foreach gtyp,$(GTFILES),$(echo_quoted_to_gtyp))
2928117404Skan	echo " NULL};" >> tmp-gtyp.h
2929132727Skan	echo "static const char *const lang_dir_names[] = { \"c\", " >> tmp-gtyp.h
2930169699Skan	$(foreach gtyp,$(GTFILES_LANG_DIR_NAMES),$(echo_quoted_to_gtyp))
2931117404Skan	echo "NULL};" >> tmp-gtyp.h
2932169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-gtyp.h gtyp-gen.h
2933169699Skan	$(STAMP) s-gtyp-gen
2934117404Skan
2935169699Skans-gtype: build/gengtype$(build_exeext) $(GTFILES)
2936169699Skan	$(RUN_GEN) build/gengtype$(build_exeext)
2937117404Skan	$(STAMP) s-gtype
2938117404Skan
293950448Sobrien#
2940169699Skan# How to compile object files to run on the build machine.
294118334Speter
2942169699Skanbuild/%.o :  # dependencies provided by explicit rule later
2943169699Skan	$(CC_FOR_BUILD) -c $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -o $@ $<
294418334Speter
2945169699Skan# Header dependencies for the programs that generate source code.
2946169699Skan# These are library modules...
2947169699Skanbuild/errors.o : errors.c $(BCONFIG_H) $(SYSTEM_H) errors.h
2948169699Skanbuild/gensupport.o: gensupport.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
2949169699Skan  $(GTM_H) $(RTL_BASE_H) $(OBSTACK_H) errors.h $(HASHTAB_H)		\
2950169699Skan  gensupport.h
2951169699Skanbuild/ggc-none.o : ggc-none.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h 	\
2952169699Skan  $(GGC_H)
2953169699Skanbuild/min-insn-modes.o : min-insn-modes.c $(BCONFIG_H) $(SYSTEM_H)	\
2954169699Skan  $(MACHMODE_H)
2955169699Skanbuild/print-rtl.o: print-rtl.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
2956169699Skan  $(GTM_H) $(RTL_BASE_H)
2957169699Skanbuild/read-rtl.o: read-rtl.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
2958169699Skan  $(GTM_H) $(RTL_BASE_H) $(OBSTACK_H) $(HASHTAB_H) gensupport.h
2959169699Skanbuild/rtl.o: rtl.c $(BCONFIG_H) coretypes.h $(GTM_H) $(SYSTEM_H)	\
2960169699Skan  $(RTL_H) $(REAL_H) $(GGC_H) errors.h
2961169699Skanbuild/vec.o : vec.c $(BCONFIG_H) $(SYSTEM_H) $(TREE_H) coretypes.h vec.h \
2962169699Skan   $(GGC_H) toplev.h
2963169699Skanbuild/gencondmd.o : build/gencondmd.c $(BCONFIG_H) $(SYSTEM_H)		\
2964169699Skan  coretypes.h $(GTM_H) insn-constants.h $(RTL_H) $(TM_P_H)		\
2965169699Skan  $(FUNCTION_H) $(REGS_H) $(RECOG_H) $(REAL_H) output.h $(FLAGS_H)	\
2966169699Skan  $(RESOURCE_H) toplev.h reload.h except.h tm-constrs.h
2967169699Skan# This pulls in tm-pred.h which contains inline functions wrapping up
2968169699Skan# predicates from the back-end so those functions must be discarded.
2969169699Skan# No big deal since gencondmd.c is a dummy file for non-GCC compilers.
2970169699Skanbuild/gencondmd.o : \
2971169699Skan  BUILD_CFLAGS := $(filter-out -fkeep-inline-functions, $(BUILD_CFLAGS))
297218334Speter
2973169699Skan# ...these are the programs themselves.
2974169699Skanbuild/genattr.o : genattr.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
2975169699Skan  coretypes.h $(GTM_H) errors.h gensupport.h
2976169699Skanbuild/genattrtab.o : genattrtab.c $(RTL_BASE_H) $(OBSTACK_H)		\
2977169699Skan  $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H) errors.h $(GGC_H)	\
2978132727Skan  gensupport.h
2979169699Skanbuild/genautomata.o : genautomata.c $(RTL_BASE_H) $(OBSTACK_H)		\
2980169699Skan  $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H) errors.h vec.h		\
2981169699Skan  $(HASHTAB_H) gensupport.h
2982169699Skanbuild/gencheck.o : gencheck.c gencheck.h tree.def $(BCONFIG_H) $(GTM_H)	\
2983169699Skan	$(SYSTEM_H) coretypes.h $(lang_tree_files)
2984169699Skanbuild/genchecksum.o : genchecksum.c $(BCONFIG_H) $(SYSTEM_H) $(MD5_H)
2985169699Skanbuild/gencodes.o : gencodes.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
2986169699Skan  coretypes.h $(GTM_H) errors.h gensupport.h
2987169699Skanbuild/genconditions.o : genconditions.c $(RTL_BASE_H) $(BCONFIG_H)	\
2988169699Skan  $(SYSTEM_H) coretypes.h $(GTM_H) errors.h
2989169699Skanbuild/genconfig.o : genconfig.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
2990169699Skan  coretypes.h $(GTM_H) errors.h gensupport.h
2991169699Skanbuild/genconstants.o : genconstants.c $(RTL_BASE_H) $(BCONFIG_H)	\
2992169699Skan  $(SYSTEM_H) coretypes.h $(GTM_H) errors.h
2993169699Skanbuild/genemit.o : genemit.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
2994169699Skan  coretypes.h $(GTM_H) errors.h gensupport.h
2995169699Skanbuild/genextract.o : genextract.c $(RTL_BASE_H) $(BCONFIG_H)		\
2996169699Skan  $(SYSTEM_H) coretypes.h $(GTM_H) errors.h gensupport.h vecprim.h
2997169699Skanbuild/genflags.o : genflags.c $(RTL_BASE_H) $(OBSTACK_H) $(BCONFIG_H)	\
2998132727Skan  $(SYSTEM_H) coretypes.h $(GTM_H) errors.h gensupport.h
2999169699Skanbuild/gengenrtl.o : gengenrtl.c $(BCONFIG_H) $(SYSTEM_H) rtl.def
3000169699Skanbuild/gengtype-lex.o : gengtype-lex.c gengtype.h gengtype-yacc.h	\
3001169699Skan  $(BCONFIG_H) coretypes.h $(GTM_H) $(SYSTEM_H) vec.h
3002169699Skanbuild/gengtype-yacc.o : gengtype-yacc.c gengtype.h $(BCONFIG_H)		\
3003169699Skan  $(SYSTEM_H) coretypes.h $(GTM_H)
3004169699Skanbuild/gengtype.o : gengtype.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
3005169699Skan  $(GTM_H) gengtype.h gtyp-gen.h rtl.def insn-notes.def errors.h
3006169699Skanbuild/genmddeps.o: genmddeps.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
3007169699Skan  $(GTM_H) $(RTL_BASE_H) errors.h gensupport.h
3008169699Skanbuild/genmodes.o : genmodes.c $(BCONFIG_H) $(SYSTEM_H) errors.h		\
3009169699Skan  $(HASHTAB_H) machmode.def $(extra_modes_file)
3010169699Skanbuild/genopinit.o : genopinit.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3011169699Skan  coretypes.h $(GTM_H) errors.h gensupport.h
3012169699Skanbuild/genoutput.o : genoutput.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3013169699Skan  coretypes.h $(GTM_H) errors.h gensupport.h
3014169699Skanbuild/genpeep.o : genpeep.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3015169699Skan  coretypes.h $(GTM_H) errors.h gensupport.h toplev.h
3016169699Skanbuild/genpreds.o : genpreds.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3017169699Skan  coretypes.h $(GTM_H) errors.h gensupport.h $(OBSTACK_H)
3018169699Skanbuild/genrecog.o : genrecog.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
3019169699Skan  coretypes.h $(GTM_H) errors.h gensupport.h
302090081Sobrien
3021169699Skan# Compile the programs that generate insn-* from the machine description.
3022169699Skan# They are compiled with $(CC_FOR_BUILD), and associated libraries,
3023169699Skan# since they need to run on this machine
3024169699Skan# even if GCC is being compiled to run on some other machine.
302590081Sobrien
3026169699Skan# As a general rule...
3027169699Skanbuild/gen%$(build_exeext): build/gen%.o $(BUILD_LIBDEPS)
3028132727Skan	$(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o $@ \
3029169699Skan	    $(filter-out $(BUILD_LIBDEPS), $^) $(BUILD_LIBS)
303050448Sobrien
3031169699Skan# All these programs use the MD reader ($(BUILD_RTL)).
3032169699Skangenprogmd = attr attrtab automata codes conditions config constants emit \
3033169699Skan	    extract flags mddeps opinit output peep preds recog
3034169699Skan$(genprogmd:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_ERRORS)
303590081Sobrien
3036169699Skan# These programs need libs over and above what they get from the above list.
3037169699Skanbuild/genautomata$(build_exeext) : BUILD_LIBS += -lm
303890081Sobrien
3039169699Skan# These programs are not linked with the MD reader.
3040169699Skanbuild/gengenrtl$(build_exeext) : $(BUILD_ERRORS)
3041169699Skanbuild/genmodes$(build_exeext) : $(BUILD_ERRORS)
3042169699Skanbuild/gengtype$(build_exeext) : build/gengtype-lex.o \
3043169699Skan  build/gengtype-yacc.o $(BUILD_ERRORS)
3044132727Skan
3045169699Skan# Generated source files for gengtype.
3046132727Skangengtype-lex.c : gengtype-lex.l
3047132727Skan	-$(FLEX) $(FLEXFLAGS) -o$@ $<
3048169699Skan# This is a pattern rule solely so that Make knows it need not run the
3049169699Skan# command twice.  The modifier to $@ ensures that Bison is asked to
3050169699Skan# produce a .c file, whether or not Make decides it needs the .h file
3051169699Skan# first.
3052169699Skangengtype-y%.c gengtype-y%.h: gengtype-y%.y
3053169699Skan	-$(BISON) $(BISONFLAGS) -d -o $(@:.h=.c) $<
3054117404Skan
305550448Sobrien#
305652298Sobrien# Remake internationalization support.
3057132727Skanintl.o: intl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h Makefile
3058169699Skan	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
305952298Sobrien	  -DLOCALEDIR=\"$(localedir)\" \
306090081Sobrien	  -c $(srcdir)/intl.c $(OUTPUT_OPTION)
306152298Sobrien
306252298Sobrien#
306318334Speter# Remake cpp and protoize.
306418334Speter
306590081SobrienPREPROCESSOR_DEFINES = \
306690081Sobrien  -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
306790081Sobrien  -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
3068132727Skan  -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
306990081Sobrien  -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
307090081Sobrien  -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
3071132727Skan  -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
3072132727Skan  -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
3073132727Skan  @TARGET_SYSTEM_ROOT_DEFINE@
307418334Speter
3075132727Skancppdefault.o: cppdefault.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
3076132727Skan	cppdefault.h Makefile
3077169699Skan	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
307890081Sobrien	  $(PREPROCESSOR_DEFINES) \
307990081Sobrien	  -c $(srcdir)/cppdefault.c $(OUTPUT_OPTION)
308018334Speter
308118334Speter# Note for the stamp targets, we run the program `true' instead of
308218334Speter# having an empty command (nothing following the semicolon).
308318334Speter
308450448Sobrienproto: config.status protoize$(exeext) unprotoize$(exeext) SYSCALLS.c.X
308518334Speter
3086169699SkanPROTO_OBJS = intl.o version.o cppdefault.o errors.o
308718334Speter
308852298Sobrienprotoize$(exeext): protoize.o $(PROTO_OBJS) $(LIBDEPS)
308952298Sobrien	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ protoize.o $(PROTO_OBJS) $(LIBS)
309018334Speter
309152298Sobrienunprotoize$(exeext): unprotoize.o $(PROTO_OBJS) $(LIBDEPS)
309252298Sobrien	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ unprotoize.o $(PROTO_OBJS) $(LIBS)
309352298Sobrien
309490081Sobrienprotoize.o: protoize.c $(srcdir)/../include/getopt.h $(CONFIG_H) $(SYSTEM_H) \
3095169699Skan   coretypes.h $(TM_H) Makefile version.h cppdefault.h intl.h
309690081Sobrien	(SHLIB_LINK='$(SHLIB_LINK)' \
309790081Sobrien	SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \
3098169699Skan	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
309996273Sobrien	  $(DRIVER_DEFINES) \
310090081Sobrien	  $(srcdir)/protoize.c $(OUTPUT_OPTION))
310150448Sobrien
3102169699Skanunprotoize.o: protoize.c $(srcdir)/../include/getopt.h $(CONFIG_H) \
3103169699Skan    $(SYSTEM_H) coretypes.h $(TM_H) Makefile version.h cppdefault.h intl.h
310490081Sobrien	(SHLIB_LINK='$(SHLIB_LINK)' \
310590081Sobrien	SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \
3106169699Skan	$(CC) -c -DUNPROTOIZE $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
310796273Sobrien	  $(DRIVER_DEFINES) \
310896273Sobrien	  $(srcdir)/protoize.c $(OUTPUT_OPTION))
310918334Speter
311018334Speter# This info describes the target machine, so compile with GCC just built.
311118334SpeterSYSCALLS.c.X: $(srcdir)/sys-types.h $(srcdir)/sys-protos.h $(GCC_PASSES) \
311218334Speter   stmp-int-hdrs
311318334Speter	-rm -f SYSCALLS.c tmp-SYSCALLS.s
311490081Sobrien	sed -e s/TARGET_GETGROUPS_T/$(TARGET_GETGROUPS_T)/ \
311590081Sobrien	  $(srcdir)/sys-types.h $(srcdir)/sys-protos.h > SYSCALLS.c
3116169699Skan	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) \
311718334Speter	  -aux-info $@ -S -o tmp-SYSCALLS.s SYSCALLS.c
311818334Speter	-rm -f SYSCALLS.c tmp-SYSCALLS.s
311918334Speter
312018334Speter
312118334Spetertest-protoize-simple: ./protoize ./unprotoize $(GCC_PASSES)
312218334Speter	-rm -f tmp-proto.[cso]
312318334Speter	cp $(srcdir)/protoize.c tmp-proto.c
312418334Speter	chmod u+w tmp-proto.c
312518334Speter	./protoize -N -B ./ -x getopt.h -c "-B./ -Wall -Wwrite-strings \
312690081Sobrien	  $(GCC_CFLAGS) $(INCLUDES) \
312718334Speter	  -DGCC_INCLUDE_DIR=0 \
312818334Speter	  -DGPLUSPLUS_INCLUDE_DIR=0 \
312918334Speter	  -DCROSS_INCLUDE_DIR=0 \
313018334Speter	  -DTOOL_INCLUDE_DIR=0 \
313190081Sobrien	  -DSTANDARD_EXEC_PREFIX=0 \
313290081Sobrien	  -DDEFAULT_TARGET_MACHINE=0 \
313390081Sobrien	  -DDEFAULT_TARGET_VERSION=0" tmp-proto.c
313418334Speter	@echo '**********' Expect 400 lines of differences.
313518334Speter	-diff $(srcdir)/protoize.c tmp-proto.c > tmp-proto.diff
313618334Speter	-wc -l tmp-proto.diff
313718334Speter	./unprotoize -N -x getopt.h -c "-B./ -Wall -Wwrite-strings \
313890081Sobrien	  $(GCC_CFLAGS) $(INCLUDES) \
313918334Speter	  -DGCC_INCLUDE_DIR=0 \
314018334Speter	  -DGPLUSPLUS_INCLUDE_DIR=0 \
314118334Speter	  -DCROSS_INCLUDE_DIR=0 \
314218334Speter	  -DTOOL_INCLUDE_DIR=0 \
314390081Sobrien	  -DSTANDARD_EXEC_PREFIX=0 \
314490081Sobrien	  -DDEFAULT_TARGET_MACHINE=0 \
314590081Sobrien	  -DDEFAULT_TARGET_VERSION=0" tmp-proto.c
314618334Speter	@echo Expect zero differences.
314718334Speter	diff $(srcdir)/protoize.c tmp-proto.c | cat
314818334Speter	-rm -f tmp-proto.[cs] tmp-proto$(objext)
314950448Sobrien
3150132727Skan# gcov-iov.c is run on the build machine to generate gcov-iov.h from version.c
3151169699Skanbuild/gcov-iov.o: gcov-iov.c $(BCONFIG_H) coretypes.h $(GTM_H) \
3152169699Skan  $(SYSTEM_H) coretypes.h $(TM_H)
3153169699Skan
3154169699Skanbuild/gcov-iov$(build_exeext): build/gcov-iov.o
3155169699Skan	$(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) build/gcov-iov.o -o $@
3156169699Skan
3157132727Skangcov-iov.h: s-iov
3158169699Skans-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
3159169699Skan	build/gcov-iov$(build_exeext) '$(BASEVER_c)' '$(DEVPHASE_c)' \
3160169699Skan	    > tmp-gcov-iov.h
3161169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-gcov-iov.h gcov-iov.h
3162132727Skan	$(STAMP) s-iov
316350448Sobrien
3164169699Skangcov.o: gcov.c gcov-io.c $(GCOV_IO_H) intl.h $(SYSTEM_H) coretypes.h $(TM_H) \
3165169699Skan   $(CONFIG_H) version.h
3166169699Skangcov-dump.o: gcov-dump.c gcov-io.c $(GCOV_IO_H) $(SYSTEM_H) coretypes.h \
3167169699Skan   $(TM_H) $(CONFIG_H)
3168132727Skan
3169169699SkanGCOV_OBJS = gcov.o intl.o version.o errors.o
317052298Sobriengcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
317152298Sobrien	$(CC) $(ALL_CFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
3172169699SkanGCOV_DUMP_OBJS = gcov-dump.o version.o errors.o
3173132727Skangcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS)
3174132727Skan	$(CC) $(ALL_CFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) $(LIBS) -o $@
317550448Sobrien#
317618334Speter# Build the include directory.  The stamp files are stmp-* rather than
317750448Sobrien# s-* so that mostlyclean does not force the include directory to
317818334Speter# be rebuilt.
317918334Speter
3180117404Skan# Build the include directory
3181169699Skanstmp-int-hdrs: $(STMP_FIXINC) $(USER_H) xlimits.h $(UNWIND_H)
318218334Speter# Copy in the headers provided with gcc.
318318334Speter# The sed command gets just the last file name component;
318418334Speter# this is necessary because VPATH could add a dirname.
318518334Speter# Using basename would be simpler, but some systems don't have it.
318650448Sobrien# The touch command is here to workaround an AIX/Linux NFS bug.
318790081Sobrien	-if [ -d include ] ; then true; else mkdir include; chmod a+rx include; fi
318818334Speter	for file in .. $(USER_H); do \
318918334Speter	  if [ X$$file != X.. ]; then \
319018334Speter	    realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
319190081Sobrien	    $(STAMP) include/$$realfile; \
319250448Sobrien	    rm -f include/$$realfile; \
319350448Sobrien	    cp $$file include; \
319450448Sobrien	    chmod a+r include/$$realfile; \
319518334Speter	  fi; \
319618334Speter	done
319718334Speter	rm -f include/limits.h
319818334Speter	cp xlimits.h include/limits.h
3199169699Skan	rm -f include/unwind.h
3200169699Skan	cp $(UNWIND_H) include/unwind.h
320118334Speter	chmod a+r include/limits.h
320218334Speter# Install the README
320318334Speter	rm -f include/README
3204169699Skan	cp $(srcdir)/../fixincludes/README-fixinc include/README
320518334Speter	chmod a+r include/README
320690081Sobrien	$(STAMP) $@
320718334Speter
3208169699Skan.PHONY: install-gcc-tooldir
3209169699Skaninstall-gcc-tooldir:
3210169699Skan	$(mkinstalldirs) $(DESTDIR)$(gcc_tooldir)
321118334Speter
3212169699Skanmacro_list: s-macro_list; @true
3213169699Skans-macro_list : $(GCC_PASSES) 
3214169699Skan	echo | $(GCC_FOR_TARGET) -E -dM - | \
3215169699Skan	  sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \
3216169699Skan		 -e 's/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \
3217169699Skan	  sort -u > tmp-macro_list
3218169699Skan	$(SHELL) $(srcdir)/../move-if-change tmp-macro_list macro_list
3219169699Skan	$(STAMP) s-macro_list
3220132727Skan
3221169699Skan# The line below is supposed to avoid accidentally matching the
3222169699Skan# built-in suffix rule `.o:' to build fixincl out of fixincl.o.  You'd
3223169699Skan# expect fixincl to be newer than fixincl.o, such that this situation
3224169699Skan# would never come up.  As it turns out, if you use ccache with
3225169699Skan# CCACHE_HARDLINK enabled, the compiler doesn't embed the current
3226169699Skan# working directory in object files (-g absent, or -fno-working-dir
3227169699Skan# present), and build and host are the same, fixincl for the host will
3228169699Skan# build after fixincl for the build machine, getting a cache hit,
3229169699Skan# thereby updating the timestamp of fixincl.o in the host tree.
3230169699Skan# Because of CCACHE_HARDLINK, this will also update the timestamp in
3231169699Skan# the build tree, and so fixincl in the build tree will appear to be
3232169699Skan# out of date.  Yuck.
3233169699Skan../$(build_subdir)/fixincludes/fixincl: ; @ :
323450448Sobrien
323518334Speter# Build fixed copies of system files.
3236169699Skan# Abort if no system headers available, unless building a crosscompiler.
3237169699Skan# FIXME: abort unless building --without-headers would be more accurate and less ugly
3238169699Skanstmp-fixinc: gsyslimits.h macro_list \
3239169699Skan  $(build_objdir)/fixincludes/fixincl \
3240169699Skan  $(build_objdir)/fixincludes/fixinc.sh
3241169699Skan	@if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
3242132727Skan	  echo The directory that should contain system headers does not exist: >&2 ; \
3243132727Skan	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
3244169699Skan	  tooldir_sysinc=`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \
3245169699Skan	  if test "x${SYSTEM_HEADER_DIR}" = "x$${tooldir_sysinc}"; \
3246132727Skan	  then sleep 1; else exit 1; fi; \
3247132727Skan	fi
324852298Sobrien	rm -rf include; mkdir include
324990081Sobrien	-chmod a+rx include
3250169699Skan	if [ -d ../prev-gcc ]; then \
3251169699Skan	  cd ../prev-gcc && \
3252169699Skan	  $(MAKE) real-$(INSTALL_HEADERS_DIR) DESTDIR=`pwd`/../gcc/ \
3253169699Skan	    libsubdir=. ; \
325418334Speter	else \
3255169699Skan	  (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \
3256169699Skan	    SHELL='$(SHELL)'; MACRO_LIST=`${PWD_COMMAND}`/macro_list ; \
3257169699Skan	    export TARGET_MACHINE srcdir SHELL MACRO_LIST && \
3258169699Skan	    cd $(build_objdir)/fixincludes && \
3259169699Skan	    $(SHELL) ./fixinc.sh ../../gcc/include \
3260169699Skan	      $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \
3261169699Skan	  rm -f include/syslimits.h; \
3262169699Skan	  if [ -f include/limits.h ]; then \
3263169699Skan	    mv include/limits.h include/syslimits.h; \
3264169699Skan	  else \
3265169699Skan	    cp $(srcdir)/gsyslimits.h include/syslimits.h; \
3266169699Skan	  fi; \
3267169699Skan	fi
3268169699Skan	chmod a+r include/syslimits.h
326990081Sobrien	$(STAMP) stmp-fixinc
327052298Sobrien
327118334Speter# Files related to the fixproto script.
3272132727Skan# gen-protos and fix-header are compiled with CC_FOR_BUILD, but they are only
327390081Sobrien# used in native and host-x-target builds, so it's safe to link them with
327490081Sobrien# libiberty.a.
327518334Speter
327618334Speterdeduced.h: $(GCC_PASSES) $(srcdir)/scan-types.sh stmp-int-hdrs
3277132727Skan	if [ -d "$(SYSTEM_HEADER_DIR)" ]; \
327850448Sobrien	then \
327990081Sobrien	  CC="$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -I. -I$(srcdir) -isystem include -isystem ${SYSTEM_HEADER_DIR}"; \
328018334Speter	  export CC; \
328150448Sobrien	  $(SHELL) $(srcdir)/scan-types.sh "$(srcdir)" >tmp-deduced.h; \
328250448Sobrien	  mv tmp-deduced.h deduced.h; \
328350448Sobrien	else \
328490081Sobrien	  $(STAMP) deduced.h; \
328550448Sobrien	fi
328618334Speter
3287169699SkanGEN_PROTOS_OBJS = build/gen-protos.o build/scan.o $(BUILD_ERRORS)
3288169699Skanbuild/gen-protos$(build_exeext): $(GEN_PROTOS_OBJS)
3289132727Skan	${CC_FOR_BUILD} $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o $@ \
3290132727Skan	  $(GEN_PROTOS_OBJS) $(BUILD_LIBS)
329118334Speter
3292169699Skanbuild/gen-protos.o: gen-protos.c scan.h $(BCONFIG_H) $(SYSTEM_H) coretypes.h \
3293169699Skan  $(GTM_H) errors.h
329418334Speter
3295169699Skanbuild/scan.o: scan.c scan.h $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H)
329618334Speter
3297169699Skanxsys-protos.h: $(GCC_PASSES) $(srcdir)/sys-protos.h deduced.h \
3298169699Skan  build/gen-protos$(build_exeext) Makefile
329990081Sobrien	sed -e s/TARGET_GETGROUPS_T/$(TARGET_GETGROUPS_T)/ \
330090081Sobrien	  deduced.h $(srcdir)/sys-protos.h > tmp-fixtmp.c
330118334Speter	mv tmp-fixtmp.c fixtmp.c
330218334Speter	$(GCC_FOR_TARGET) fixtmp.c -w -U__SIZE_TYPE__ -U__PTRDIFF_TYPE__ -U__WCHAR_TYPE__ -E \
330318334Speter	  | sed -e 's/	/ /g' -e 's/ *(/ (/g' -e 's/ [ ]*/ /g' -e 's/( )/()/' \
3304169699Skan	  | $(RUN_GEN) build/gen-protos >xsys-protos.hT
330518334Speter	mv xsys-protos.hT xsys-protos.h
330618334Speter	rm -rf fixtmp.c
330718334Speter
330890081Sobrien# This is nominally a 'build' program, but it's run only when host==build,
330990081Sobrien# so we can (indeed, must) use $(LIBDEPS) and $(LIBS).
3310169699Skanbuild/fix-header$(build_exeext): build/fix-header.o build/scan-decls.o \
3311169699Skan  build/scan.o xsys-protos.h c-incpath.o cppdefault.o prefix.o \
3312169699Skan  $(BUILD_ERRORS) $(LIBDEPS)
3313169699Skan	$(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o $@ \
3314169699Skan	 build/fix-header.o c-incpath.o cppdefault.o build/scan-decls.o prefix.o \
3315169699Skan	 build/scan.o $(BUILD_ERRORS) $(LIBS)
331618334Speter
3317169699Skanbuild/fix-header.o: fix-header.c $(OBSTACK_H) scan.h errors.h \
3318132727Skan	xsys-protos.h $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H) $(CPPLIB_H)
331918334Speter
3320169699Skanbuild/scan-decls.o: scan-decls.c scan.h $(CPPLIB_H) $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H)
332118334Speter
332218334Speter# stmp-fixproto depends on this, not on fix-header directly.
332318334Speter# The idea is to make sure fix-header gets built,
332418334Speter# but not rerun fixproto after each stage
332518334Speter# just because fix-header's mtime has changed.
3326169699Skanfixhdr.ready: build/fix-header$(build_exeext)
332718334Speter	-if [ -f fixhdr.ready ] ; then \
332818334Speter		true; \
332918334Speter	else \
333090081Sobrien		$(STAMP) fixhdr.ready; \
333118334Speter	fi
333218334Speter
3333169699Skan# stmp-int-hdrs is to make sure fixincludes has already finished.
333418334Speter# The if statement is so that we don't run fixproto a second time
333518334Speter# if it has already been run on the files in `include'.
333690081Sobrienstmp-fixproto: fixhdr.ready fixproto stmp-int-hdrs
333790081Sobrien	if [ -f include/fixed ] ; then true; \
333818334Speter	else \
333918334Speter	  : This line works around a 'make' bug in BSDI 1.1.; \
334018334Speter	  FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"; export FIXPROTO_DEFINES; \
3341169699Skan	  FIX_HEADER="build/fix-header$(build_exeext)"; export FIX_HEADER; \
3342169699Skan	  mkinstalldirs="$(mkinstalldirs)"; \
334352298Sobrien	    export mkinstalldirs; \
3344132727Skan	  if [ -d "$(SYSTEM_HEADER_DIR)" ]; then \
334550448Sobrien	    $(SHELL) ${srcdir}/fixproto include include $(SYSTEM_HEADER_DIR); \
334690081Sobrien	    if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \
334750448Sobrien	  else true; fi; \
334890081Sobrien	  $(STAMP) include/fixed; \
334918334Speter	fi
335090081Sobrien	$(STAMP) stmp-fixproto
3351169699Skan
3352169699Skan# We can't run fixproto (it's being built for a different host), but we still
3353169699Skan# need to install it so that the user can run it when the compiler is
3354169699Skan# installed.
3355169699Skanstmp-install-fixproto: fixproto
3356169699Skan	$(STAMP) $@
335750448Sobrien#
335818334Speter# Remake the info files.
335918334Speter
336090081Sobriendoc: $(BUILD_INFO) $(GENERATED_MANPAGES) gccbug
336118334Speter
3362132727SkanINFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
3363132727Skan            doc/gccinstall.info doc/cppinternals.info
336418334Speter
3365132727Skaninfo: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo
336618334Speter
3367132727Skansrcinfo: $(INFOFILES)
3368132727Skan	-cp -p $^ $(srcdir)/doc
3369117404Skan
3370169699SkanTEXI_CPP_FILES = cpp.texi fdl.texi cppenv.texi cppopts.texi		\
3371169699Skan	 gcc-common.texi gcc-vers.texi
3372117404Skan
3373169699SkanTEXI_GCC_FILES = gcc.texi gcc-common.texi gcc-vers.texi frontends.texi	\
3374169699Skan	 standards.texi invoke.texi extend.texi md.texi objc.texi	\
3375169699Skan	 gcov.texi trouble.texi bugreport.texi service.texi		\
3376169699Skan	 contribute.texi compat.texi funding.texi gnu.texi gpl.texi	\
3377169699Skan	 fdl.texi contrib.texi cppenv.texi cppopts.texi			\
3378169699Skan	 implement-c.texi
3379117404Skan
3380169699SkanTEXI_GCCINT_FILES = gccint.texi gcc-common.texi gcc-vers.texi		\
3381169699Skan	 contribute.texi makefile.texi configterms.texi options.texi	\
3382169699Skan	 portability.texi interface.texi passes.texi c-tree.texi	\
3383169699Skan	 rtl.texi md.texi tm.texi hostconfig.texi fragments.texi	\
3384169699Skan	 configfiles.texi collect2.texi headerdirs.texi funding.texi	\
3385169699Skan	 gnu.texi gpl.texi fdl.texi contrib.texi languages.texi		\
3386169699Skan	 sourcebuild.texi gty.texi libgcc.texi cfg.texi tree-ssa.texi	\
3387169699Skan	 loop.texi
3388117404Skan
3389169699SkanTEXI_GCCINSTALL_FILES = install.texi install-old.texi fdl.texi		\
3390169699Skan	 gcc-common.texi gcc-vers.texi
3391117404Skan
3392169699SkanTEXI_CPPINT_FILES = cppinternals.texi gcc-common.texi gcc-vers.texi
339390081Sobrien
3394169699Skan# gcc-vers.texi is generated from the version files.
3395169699Skangcc-vers.texi: $(BASEVER) $(DEVPHASE)
3396169699Skan	(echo "@set version-GCC $(BASEVER_c)"; \
3397169699Skan	 if [ "$(DEVPHASE_c)" = "experimental" ]; \
3398169699Skan	 then echo "@set DEVELOPMENT"; \
3399169699Skan	 else echo "@clear DEVELOPMENT"; \
3400169699Skan	 fi) > $@T
3401169699Skan	echo "@set srcdir $(srcdir)" >> $@T
3402169699Skan	mv -f $@T $@
3403169699Skan
3404169699Skan
3405169699Skan# The *.1, *.7, *.info, *.dvi, and *.pdf files are being generated from implicit
3406169699Skan# patterns.  To use them, put each of the specific targets with its
3407132727Skan# specific dependencies but no build commands.
3408117404Skan
3409132727Skandoc/cpp.info: $(TEXI_CPP_FILES)
3410132727Skandoc/gcc.info: $(TEXI_GCC_FILES)
3411132727Skandoc/gccint.info: $(TEXI_GCCINT_FILES)
3412132727Skandoc/cppinternals.info: $(TEXI_CPPINT_FILES)
341390081Sobrien
3414132727Skandoc/%.info: %.texi
3415132727Skan	if [ x$(BUILD_INFO) = xinfo ]; then \
3416169699Skan		$(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
3417169699Skan			-I $(gcc_docdir)/include -o $@ $<; \
3418132727Skan	fi
341990081Sobrien
3420132727Skan# Duplicate entry to handle renaming of gccinstall.info
3421132727Skandoc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
3422132727Skan	if [ x$(BUILD_INFO) = xinfo ]; then \
3423169699Skan		$(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
3424169699Skan			-I $(gcc_docdir)/include -o $@ $<; \
3425132727Skan	fi
342618334Speter
3427132727Skandoc/cpp.dvi: $(TEXI_CPP_FILES)
3428132727Skandoc/gcc.dvi: $(TEXI_GCC_FILES)
3429132727Skandoc/gccint.dvi: $(TEXI_GCCINT_FILES)
3430132727Skandoc/cppinternals.dvi: $(TEXI_CPPINT_FILES)
343118334Speter
3432169699Skandoc/cpp.pdf: $(TEXI_CPP_FILES)
3433169699Skandoc/gcc.pdf: $(TEXI_GCC_FILES)
3434169699Skandoc/gccint.pdf: $(TEXI_GCCINT_FILES)
3435169699Skandoc/cppinternals.pdf: $(TEXI_CPPINT_FILES)
3436169699Skan
3437169699Skan$(build_htmldir)/cpp/index.html: $(TEXI_CPP_FILES)
3438169699Skan$(build_htmldir)/gcc/index.html: $(TEXI_GCC_FILES)
3439169699Skan$(build_htmldir)/gccint/index.html: $(TEXI_GCCINT_FILES)
3440169699Skan$(build_htmldir)/cppinternals/index.html: $(TEXI_CPPINT_FILES)
3441169699Skan
3442132727Skandvi:: doc/gcc.dvi doc/gccint.dvi doc/gccinstall.dvi doc/cpp.dvi \
3443169699Skan      doc/cppinternals.dvi lang.dvi
344450448Sobrien
3445132727Skandoc/%.dvi: %.texi
3446169699Skan	$(TEXI2DVI) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
3447117404Skan
3448132727Skan# Duplicate entry to handle renaming of gccinstall.dvi
3449132727Skandoc/gccinstall.dvi: $(TEXI_GCCINSTALL_FILES)
3450169699Skan	$(TEXI2DVI) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
345190081Sobrien
3452169699Skanpdf:: doc/gcc.pdf doc/gccint.pdf doc/gccinstall.pdf doc/cpp.pdf \
3453169699Skan      doc/cppinternals.pdf lang.pdf
3454169699Skan
3455169699Skandoc/%.pdf: %.texi
3456169699Skan	$(TEXI2PDF) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
3457169699Skan
3458169699Skan# Duplicate entry to handle renaming of gccinstall.pdf
3459169699Skandoc/gccinstall.pdf: $(TEXI_GCCINSTALL_FILES)
3460169699Skan	$(TEXI2PDF) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
3461169699Skan
3462169699Skan# List the directories or single hmtl files which are installed by
3463169699Skan# install-html. The lang.html file triggers language fragments to build
3464169699Skan# html documentation. Installing language fragment documentation is not
3465169699Skan# yet supported.
3466169699SkanHTMLS_INSTALL=$(build_htmldir)/cpp $(build_htmldir)/gcc \
3467169699Skan       $(build_htmldir)/gccinstall $(build_htmldir)/gccint \
3468169699Skan       $(build_htmldir)/cppinternals
3469169699Skan
3470169699Skan# List the html file targets.
3471169699SkanHTMLS_BUILD=$(build_htmldir)/cpp/index.html $(build_htmldir)/gcc/index.html \
3472169699Skan       $(build_htmldir)/gccinstall/index.html $(build_htmldir)/gccint/index.html \
3473169699Skan       $(build_htmldir)/cppinternals/index.html lang.html
3474169699Skan
3475169699Skanhtml:: $(HTMLS_BUILD)
3476169699Skan
3477169699Skan$(build_htmldir)/%/index.html: %.texi
3478169699Skan	$(mkinstalldirs) $(@D)
3479169699Skan	rm -f $(@D)/*
3480169699Skan	$(TEXI2HTML) -I $(abs_docdir) -I $(abs_docdir)/include -o $(@D) $<
3481169699Skan
3482169699Skan# Duplicate entry to handle renaming of gccinstall
3483169699Skan$(build_htmldir)/gccinstall/index.html: $(TEXI_GCCINSTALL_FILES)
3484169699Skan	$(mkinstalldirs) $(@D)
3485169699Skan	echo rm -f $(@D)/*
3486169699Skan	$(TEXI2HTML) -I $(abs_docdir) -I $(abs_docdir)/include -o $(@D) $<
3487169699Skan
3488132727SkanMANFILES = doc/gcov.1 doc/cpp.1 doc/gcc.1 doc/gfdl.7 doc/gpl.7 doc/fsf-funding.7
348990081Sobrien
3490169699Skangenerated-manpages: man
349190081Sobrien
3492132727Skanman: $(MANFILES) lang.man @GENINSRC@ srcman lang.srcman
349390081Sobrien
3494132727Skansrcman: $(MANFILES)
3495132727Skan	-cp -p $^ $(srcdir)/doc
349690081Sobrien
3497132727Skandoc/%.1: %.pod
3498132727Skan	$(STAMP) $@
3499132727Skan	-($(POD2MAN) --section=1 $< > $(@).T$$$$ && \
3500132727Skan		mv -f $(@).T$$$$ $@) || \
3501132727Skan		(rm -f $(@).T$$$$ && exit 1)
350290081Sobrien
3503132727Skandoc/%.7: %.pod
3504132727Skan	$(STAMP) $@
3505132727Skan	-($(POD2MAN) --section=7 $< > $(@).T$$$$ && \
3506132727Skan		mv -f $(@).T$$$$ $@) || \
3507132727Skan		(rm -f $(@).T$$$$ && exit 1)
350890081Sobrien
3509132727Skan%.pod: %.texi
3510132727Skan	$(STAMP) $@
3511132727Skan	-$(TEXI2POD) $< > $@
351290081Sobrien
3513132727Skan.INTERMEDIATE: cpp.pod gcc.pod gfdl.pod fsf-funding.pod
3514132727Skancpp.pod: cpp.texi cppenv.texi cppopts.texi
3515132727Skan
3516132727Skan# These next rules exist because the output name is not the same as
3517169699Skan# the input name, so our implicit %.pod rule will not work.
3518132727Skan
3519132727Skangcc.pod: invoke.texi cppenv.texi cppopts.texi
3520132727Skan	$(STAMP) $@
3521132727Skan	-$(TEXI2POD) $< > $@
3522132727Skangfdl.pod: fdl.texi
3523132727Skan	$(STAMP) $@
3524132727Skan	-$(TEXI2POD) $< > $@
3525132727Skanfsf-funding.pod: funding.texi
3526132727Skan	$(STAMP) $@
3527132727Skan	-$(TEXI2POD) $< > $@
3528132727Skan
352950448Sobrien#
3530169699Skan# clean-target removes all files made by compilation.
3531169699Skan# This can be added to over time.
3532169699Skan
3533169699Skanclean-target: clean-target-libgcc
3534169699Skan
3535169699Skanclean-target-libgcc:
3536169699Skan	test ! -d libgcc || \
3537169699Skan	(cd libgcc && find . -type d -print) | \
3538169699Skan	while read d; do rm -f $$d/libgcc.a || : ; done
3539169699Skan	test ! -d libgcc || rm -r libgcc
3540169699Skan	test ! -f stmp-dirs || rm stmp-dirs
3541169699Skan
354218334Speter# Deletion of files made during compilation.
354318334Speter# There are four levels of this:
354418334Speter#   `mostlyclean', `clean', `distclean' and `maintainer-clean'.
354518334Speter# `mostlyclean' is useful while working on a particular type of machine.
354618334Speter# It deletes most, but not all, of the files made by compilation.
354718334Speter# It does not delete libgcc.a or its parts, so it won't have to be recompiled.
354818334Speter# `clean' deletes everything made by running `make all'.
354918334Speter# `distclean' also deletes the files made by config.
355018334Speter# `maintainer-clean' also deletes everything that could be regenerated
355150448Sobrien# automatically, except for `configure'.
355250448Sobrien# We remove as much from the language subdirectories as we can
355318334Speter# (less duplicated code).
355418334Speter
3555132727Skanmostlyclean: lang.mostlyclean
3556169699Skan	-rm -f $(STAGECOPYSTUFF) $(STAGEMOVESTUFF)
3557117404Skan	-rm -f *$(coverageexts)
355890081Sobrien	-rm -rf libgcc
3559169699Skan# Delete build programs
3560169699Skan	-rm -f build/*
3561169699Skan	-rm -f mddeps.mk
356218334Speter# Delete the temp files made in the course of building libgcc.a.
356390081Sobrien	-rm -f xlimits.h
356450448Sobrien# Delete other built files.
3565117404Skan	-rm -f xsys-protos.hT
3566132727Skan	-rm -f specs.h gencheck.h options.c options.h
356750448Sobrien# Delete the stamp and temporary files.
356850448Sobrien	-rm -f s-* tmp-* stamp-* stmp-*
356918334Speter	-rm -f */stamp-* */tmp-*
357018334Speter# Delete debugging dump files.
357190081Sobrien	-rm -f *.[0-9][0-9].* */*.[0-9][0-9].*
357218334Speter# Delete some files made during installation.
3573132727Skan	-rm -f specs $(SPECS) SYSCALLS.c.X SYSCALLS.c
357490081Sobrien	-rm -f collect collect2 mips-tfile mips-tdump
357518334Speter# Delete files generated for fixproto
3576169699Skan	-rm -rf $(build_exeext) xsys-protos.h deduced.h tmp-deduced.h \
357790081Sobrien	  gen-protos$(build_exeext) fixproto.list fixtmp.* fixhdr.ready
357818334Speter# Delete unwanted output files from TeX.
357918334Speter	-rm -f *.toc *.log *.vr *.fn *.cp *.tp *.ky *.pg
358018334Speter	-rm -f */*.toc */*.log */*.vr */*.fn */*.cp */*.tp */*.ky */*.pg
358118334Speter# Delete sorted indices we don't actually use.
358218334Speter	-rm -f gcc.vrs gcc.kys gcc.tps gcc.pgs gcc.fns
358318334Speter# Delete core dumps.
358418334Speter	-rm -f core */core
3585117404Skan# Delete file generated for gengtype.c
3586117404Skan	-rm -f gtyp-gen.h
3587117404Skan# Delete files generated by gengtype.c
3588117404Skan	-rm -f gtype-*
3589117404Skan	-rm -f gt-*
3590169699Skan# Delete genchecksum outputs
3591169699Skan	-rm -f *-checksum.c
359218334Speter
359318334Speter# Delete all files made by compilation
359418334Speter# that don't exist in the distribution.
3595132727Skanclean: mostlyclean lang.clean
3596132727Skan	-rm -f libgcc.a libgcc_eh.a libgcov.a
3597146906Skan	-rm -f libgcc_s*
3598146906Skan	-rm -f libunwind*
3599132727Skan	-rm -f config.h tconfig.h bconfig.h tm_p.h tm.h
3600169699Skan	-rm -f options.c options.h optionlist
360190081Sobrien	-rm -f cs-*
360290081Sobrien	-rm -rf libgcc
3603132727Skan	-rm -f doc/*.dvi
3604169699Skan	-rm -f doc/*.pdf
360518334Speter# Delete the include directory.
360650448Sobrien	-rm -rf include
360718334Speter# Delete files used by the "multilib" facility (including libgcc subdirs).
360818334Speter	-rm -f multilib.h tmpmultilib*
360918334Speter	-if [ "x$(MULTILIB_DIRNAMES)" != x ] ; then \
361018334Speter	  rm -rf $(MULTILIB_DIRNAMES); \
361118334Speter	else if [ "x$(MULTILIB_OPTIONS)" != x ] ; then \
361218334Speter	  rm -rf `echo $(MULTILIB_OPTIONS) | sed -e 's/\// /g'`; \
361318334Speter	fi ; fi
3614132727Skan	-rm -fr stage1 stage2 stage3 stage4 stageprofile stagefeedback
361590081Sobrien# Delete stamps of bootstrap stages
361690081Sobrien	-rm -f stage?_*
361790081Sobrien	-rm -f clean?_*
361890081Sobrien	-rm -f stage_last
361918334Speter
362018334Speter# Delete all files that users would normally create
362118334Speter# while building and installing GCC.
3622132727Skandistclean: clean lang.distclean
362390081Sobrien	-rm -f auto-host.h auto-build.h
362490081Sobrien	-rm -f cstamp-h
362550448Sobrien	-rm -f config.status config.run config.cache config.bak
362650448Sobrien	-rm -f Make-lang Make-hooks Make-host Make-target
3627117404Skan	-rm -f Makefile *.oaux
362850448Sobrien	-rm -f gthr-default.h
3629132727Skan	-rm -f */stage1 */stage2 */stage3 */stage4 */include */stageprofile */stagefeedback
3630169699Skan	-rm -f TAGS */TAGS
363118334Speter	-rm -f *.asm
363250448Sobrien	-rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak
3633117404Skan	-rm -f testsuite/*.log testsuite/*.sum
3634117404Skan	-cd testsuite && rm -f x *.x *.x? *.exe *.rpo *.o *.s *.S *.c
3635132727Skan	-cd testsuite && rm -f *.out *.gcov *$(coverageexts)
3636117404Skan	-rm -rf ${QMTEST_DIR} stamp-qmtest
363790081Sobrien	-rm -f cxxmain.c
3638169699Skan	-rm -f mklibgcc gccbug .gdbinit configargs.h
363990081Sobrien	-rm -f gcov.pod
3640117404Skan# Delete po/*.gmo only if we are not building in the source directory.
3641117404Skan	-if [ ! -f po/exgettext ]; then rm -f po/*.gmo; fi
3642169699Skan	-rmdir ada cp f java objc intl po testsuite 2>/dev/null
364318334Speter
364450448Sobrien# Get rid of every file that's generated from some other file, except for `configure'.
364518334Speter# Most of these files ARE PRESENT in the GCC distribution.
364650448Sobrienmaintainer-clean:
364750448Sobrien	@echo 'This command is intended for maintainers to use; it'
364850448Sobrien	@echo 'deletes files that may need special tools to rebuild.'
3649132727Skan	$(MAKE) lang.maintainer-clean distclean
365090081Sobrien	-rm -f cpp.??s cpp.*aux
365190081Sobrien	-rm -f gcc.??s gcc.*aux
3652169699Skan	-rm -f $(gcc_docdir)/*.info $(gcc_docdir)/*.1 $(gcc_docdir)/*.7 $(gcc_docdir)/*.dvi $(gcc_docdir)/*.pdf
365350448Sobrien#
365418334Speter# Entry points `install' and `uninstall'.
365518334Speter# Also use `install-collect2' to install collect2 when the config files don't.
365618334Speter
365718334Speter# Copy the compiler files into directories where they will be run.
365818334Speter# Install the driver last so that the window when things are
365918334Speter# broken is small.
366090081Sobrieninstall: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \
3661132727Skan    install-cpp install-man install-info install-@POSUB@ \
3662169699Skan    install-driver
366318334Speter
366450448Sobrien# Handle cpp installation.
3665169699Skaninstall-cpp: installdirs cpp$(exeext)
3666132727Skan	-rm -f $(DESTDIR)$(bindir)/$(CPP_INSTALL_NAME)$(exeext)
3667132727Skan	-$(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(DESTDIR)$(bindir)/$(CPP_INSTALL_NAME)$(exeext)
3668132727Skan	-if [ x$(cpp_install_dir) != x ]; then \
3669132727Skan	  rm -f $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
3670132727Skan	  $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
3671132727Skan	else true; fi
367250448Sobrien
367350448Sobrien# Create the installation directories.
3674132727Skan# $(libdir)/gcc/include isn't currently searched by cpp.
367550448Sobrieninstalldirs:
3676169699Skan	$(mkinstalldirs) $(DESTDIR)$(libsubdir)
3677169699Skan	$(mkinstalldirs) $(DESTDIR)$(libexecsubdir)
3678169699Skan	$(mkinstalldirs) $(DESTDIR)$(bindir)
3679169699Skan	$(mkinstalldirs) $(DESTDIR)$(includedir)
3680169699Skan	$(mkinstalldirs) $(DESTDIR)$(infodir)
3681169699Skan	$(mkinstalldirs) $(DESTDIR)$(slibdir)
3682169699Skan	$(mkinstalldirs) $(DESTDIR)$(man1dir)
3683169699Skan	$(mkinstalldirs) $(DESTDIR)$(man7dir)
368418334Speter
368518334Speter# Install the compiler executables built during cross compilation.
3686132727Skaninstall-common: native $(EXTRA_PARTS) lang.install-common installdirs
368718334Speter	for file in $(COMPILERS); do \
368818334Speter	  if [ -f $$file ] ; then \
3689132727Skan	    rm -f $(DESTDIR)$(libexecsubdir)/$$file; \
3690132727Skan	    $(INSTALL_PROGRAM) $$file $(DESTDIR)$(libexecsubdir)/$$file; \
369118334Speter	  else true; \
369218334Speter	  fi; \
369318334Speter	done
3694169699Skan	for file in $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(COLLECT2) ..; do \
369518334Speter	  if [ x"$$file" != x.. ]; then \
3696132727Skan	    rm -f $(DESTDIR)$(libexecsubdir)/$$file; \
3697132727Skan	    $(INSTALL_PROGRAM) $$file $(DESTDIR)$(libexecsubdir)/$$file; \
369818334Speter	  else true; fi; \
369918334Speter	done
370018334Speter	for file in $(EXTRA_PARTS) ..; do \
370118334Speter	  if [ x"$$file" != x.. ]; then \
3702110621Skan	    rm -f $(DESTDIR)$(libsubdir)/$$file; \
3703110621Skan	    $(INSTALL_DATA) $$file $(DESTDIR)$(libsubdir)/$$file; \
3704110621Skan	    chmod a-x $(DESTDIR)$(libsubdir)/$$file; \
370518334Speter	  else true; fi; \
370618334Speter	done
3707169699Skan# We no longer install the specs file because its presence makes the
3708169699Skan# driver slower, and because people who need it can recreate it by
3709169699Skan# using -dumpspecs.  We remove any old version because it would
3710169699Skan# otherwise override the specs built into the driver.
3711169699Skan	rm -f $(DESTDIR)$(libsubdir)/specs
371218334Speter# Install protoize if it was compiled.
3713132727Skan	-if [ -f protoize$(exeext) ]; then \
3714132727Skan	  rm -f $(DESTDIR)$(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \
3715132727Skan	  $(INSTALL_PROGRAM) protoize$(exeext) $(DESTDIR)$(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \
3716132727Skan	  rm -f $(DESTDIR)$(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \
3717132727Skan	  $(INSTALL_PROGRAM) unprotoize$(exeext) $(DESTDIR)$(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \
3718132727Skan	  rm -f $(DESTDIR)$(libsubdir)/SYSCALLS.c.X; \
3719132727Skan	  $(INSTALL_DATA) SYSCALLS.c.X $(DESTDIR)$(libsubdir)/SYSCALLS.c.X; \
3720132727Skan	  chmod a-x $(DESTDIR)$(libsubdir)/SYSCALLS.c.X; \
372118334Speter	fi
372250448Sobrien# Install gcov if it was compiled.
372350448Sobrien	-if [ -f gcov$(exeext) ]; \
372450448Sobrien	then \
3725132727Skan	    rm -f $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext); \
3726110621Skan	    $(INSTALL_PROGRAM) gcov$(exeext) $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext); \
372750448Sobrien	fi
3728110621Skan	$(INSTALL_SCRIPT) gccbug $(DESTDIR)$(bindir)/$(GCCBUG_INSTALL_NAME)
372918334Speter
3730169699Skan# Install the driver program as $(target_noncanonical)-gcc,
3731132727Skan# $(target_noncanonical)-gcc-$(version)
373252298Sobrien# and also as either gcc (if native) or $(gcc_tooldir)/bin/gcc.
373390081Sobrieninstall-driver: installdirs xgcc$(exeext)
3734132727Skan	-rm -f $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
3735132727Skan	-$(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
3736169699Skan	-rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$(version)$(exeext)
3737132727Skan	-( cd $(DESTDIR)$(bindir) && \
3738169699Skan	   $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-$(version)$(exeext) )
373918334Speter	-if [ -f gcc-cross$(exeext) ] ; then \
3740110621Skan	  if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \
3741110621Skan	    rm -f $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \
3742110621Skan	    $(INSTALL_PROGRAM) gcc-cross$(exeext) $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \
374318334Speter	  else true; fi; \
374418334Speter	else \
3745132727Skan	  rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$(exeext); \
3746110621Skan	  ( cd $(DESTDIR)$(bindir) && \
3747132727Skan	    $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-tmp$(exeext) && \
3748132727Skan	    mv -f $(target_noncanonical)-gcc-tmp$(exeext) $(GCC_TARGET_INSTALL_NAME)$(exeext) ); \
374918334Speter	fi
375018334Speter
375118334Speter# Install the info files.
375250448Sobrien# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
375350448Sobrien# to do the install.
3754132727Skaninstall-info:: doc installdirs \
3755132727Skan	$(DESTDIR)$(infodir)/cpp.info \
3756132727Skan	$(DESTDIR)$(infodir)/gcc.info \
3757132727Skan	$(DESTDIR)$(infodir)/cppinternals.info \
3758132727Skan	$(DESTDIR)$(infodir)/gccinstall.info \
3759169699Skan	$(DESTDIR)$(infodir)/gccint.info \
3760169699Skan	lang.install-info
3761132727Skan
3762132727Skan$(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
3763132727Skan	rm -f $@
3764132727Skan	if [ -f $< ]; then \
3765132727Skan	  for f in $(<)*; do \
376690081Sobrien	    realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
3767110621Skan	    $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/$$realfile; \
3768132727Skan	    chmod a-x $(DESTDIR)$(infodir)/$$realfile; \
376990081Sobrien	  done; \
377090081Sobrien	else true; fi
377150448Sobrien	-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
3772132727Skan	  if [ -f $@ ]; then \
3773132727Skan	    install-info --dir-file=$(DESTDIR)$(infodir)/dir $@; \
377450448Sobrien	  else true; fi; \
377550448Sobrien	else true; fi;
377618334Speter
3777169699Skanhtml__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
3778169699Skan 
3779169699Skaninstall-html: $(HTMLS_BUILD)
3780169699Skan	@$(NORMAL_INSTALL)
3781169699Skan	test -z "$(htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(htmldir)"
3782169699Skan	@list='$(HTMLS_INSTALL)'; for p in $$list; do \
3783169699Skan	  if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
3784169699Skan	  f=$(html__strip_dir) \
3785169699Skan	  if test -d "$$d$$p"; then \
3786169699Skan	    echo " $(mkinstalldirs) '$(DESTDIR)$(htmldir)/$$f'"; \
3787169699Skan	    $(mkinstalldirs) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
3788169699Skan	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
3789169699Skan	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
3790169699Skan	  else \
3791169699Skan	    echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
3792169699Skan	    $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
3793169699Skan	  fi; \
3794169699Skan	done
3795169699Skan
379618334Speter# Install the man pages.
3797169699Skaninstall-man: lang.install-man \
3798132727Skan	$(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) \
3799132727Skan	$(DESTDIR)$(man1dir)/$(CPP_INSTALL_NAME)$(man1ext) \
3800132727Skan	$(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext) \
3801132727Skan	$(DESTDIR)$(man7dir)/fsf-funding$(man7ext) \
3802132727Skan	$(DESTDIR)$(man7dir)/gfdl$(man7ext) \
3803132727Skan	$(DESTDIR)$(man7dir)/gpl$(man7ext)
380418334Speter
3805169699Skan$(DESTDIR)$(man7dir)/%$(man7ext): doc/%.7 installdirs
3806132727Skan	-rm -f $@
3807132727Skan	-$(INSTALL_DATA) $< $@
3808132727Skan	-chmod a-x $@
3809132727Skan
3810169699Skan$(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext): doc/gcc.1 installdirs
3811132727Skan	-rm -f $@
3812169699Skan	-$(INSTALL_DATA) $< $@
3813132727Skan	-chmod a-x $@
3814132727Skan
3815169699Skan$(DESTDIR)$(man1dir)/$(CPP_INSTALL_NAME)$(man1ext): doc/cpp.1 installdirs
3816132727Skan	-rm -f $@
3817169699Skan	-$(INSTALL_DATA) $< $@
3818132727Skan	-chmod a-x $@
3819132727Skan
3820169699Skan$(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext): doc/gcov.1 installdirs
3821132727Skan	-rm -f $@
3822169699Skan	-$(INSTALL_DATA) $< $@
3823132727Skan	-chmod a-x $@
3824132727Skan
382518334Speter# Install the library.
3826132727Skaninstall-libgcc: libgcc.mk libgcc.a libgcov.a installdirs
3827132727Skan	$(MAKE) \
382890081Sobrien	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
3829132727Skan	  CONFIG_H="$(TCONFIG_H)" \
383090081Sobrien	  MAKEOVERRIDES= \
3831169699Skan	  mkinstalldirs='$(mkinstalldirs)' \
383290081Sobrien	  -f libgcc.mk install
383318334Speter
3834132727Skan# Install multiple versions of libgcc.a, libgcov.a.
383550448Sobrieninstall-multilib: stmp-multilib installdirs
3836132727Skan	$(MAKE) \
383790081Sobrien	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
3838132727Skan	  CONFIG_H="$(CONFIG_H)" \
383990081Sobrien	  MAKEOVERRIDES= \
3840169699Skan	  mkinstalldirs='$(mkinstalldirs)' \
384190081Sobrien	  -f libgcc.mk install
384218334Speter
384318334Speter# Install all the header files built in the include subdirectory.
384490081Sobrieninstall-headers: $(INSTALL_HEADERS_DIR)
384518334Speter# Fix symlinks to absolute paths in the installed include directory to
384618334Speter# point to the installed directory, not the build directory.
384750448Sobrien# Don't need to use LN_S here since we really do need ln -s and no substitutes.
3848110621Skan	-files=`cd $(DESTDIR)$(libsubdir)/include; find . -type l -print 2>/dev/null`; \
384918334Speter	if [ $$? -eq 0 ]; then \
3850117404Skan	  dir=`cd include; ${PWD_COMMAND}`; \
385118334Speter	  for i in $$files; do \
3852110621Skan	    dest=`ls -ld $(DESTDIR)$(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
385318334Speter	    if expr "$$dest" : "$$dir.*" > /dev/null; then \
3854110621Skan	      rm -f $(DESTDIR)$(libsubdir)/include/$$i; \
3855110621Skan	      ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(DESTDIR)$(libsubdir)/include/$$i; \
385618334Speter	    fi; \
385718334Speter	  done; \
385818334Speter	fi
385918334Speter
386018334Speter# Create or recreate the gcc private include file directory.
386150448Sobrieninstall-include-dir: installdirs
3862110621Skan	-rm -rf $(DESTDIR)$(libsubdir)/include
3863110621Skan	mkdir $(DESTDIR)$(libsubdir)/include
3864110621Skan	-chmod a+rx $(DESTDIR)$(libsubdir)/include
386518334Speter
3866169699Skan# Create or recreate the install-tools include file directory.
3867169699Skanitoolsdir = $(libexecsubdir)/install-tools
3868169699Skanitoolsdatadir = $(libsubdir)/install-tools
3869169699Skaninstall-itoolsdirs: installdirs
3870169699Skan	$(mkinstalldirs) $(DESTDIR)$(itoolsdatadir)/include
3871169699Skan	$(mkinstalldirs) $(DESTDIR)$(itoolsdir)
3872169699Skan
387318334Speter# Install the include directory using tar.
387490081Sobrieninstall-headers-tar: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
387552298Sobrien# We use `pwd`/include instead of just include to problems with CDPATH
387652298Sobrien# Unless a full pathname is provided, some shells would print the new CWD,
387752298Sobrien# found in CDPATH, corrupting the output.  We could just redirect the
387852298Sobrien# output of `cd', but some shells lose on redirection within `()'s
3879117404Skan	(cd `${PWD_COMMAND}`/include ; \
3880110621Skan	 tar -cf - .; exit 0) | (cd $(DESTDIR)$(libsubdir)/include; tar xpf - )
388118334Speter# /bin/sh on some systems returns the status of the first tar,
388218334Speter# and that can lose with GNU tar which always writes a full block.
388318334Speter# So use `exit 0' to ignore its exit status.
388418334Speter
388518334Speter# Install the include directory using cpio.
388690081Sobrieninstall-headers-cpio: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
388752298Sobrien# See discussion about the use of `pwd` above
3888117404Skan	cd `${PWD_COMMAND}`/include ; \
3889110621Skan	find . -print | cpio -pdum $(DESTDIR)$(libsubdir)/include
389018334Speter
389190081Sobrien# Install the include directory using cp.
389290081Sobrieninstall-headers-cp: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
3893110621Skan	cp -p -r include $(DESTDIR)$(libsubdir)
389418334Speter
3895169699Skan# Targets without dependencies, for use in prev-gcc during bootstrap.
3896169699Skanreal-install-headers-tar:
3897169699Skan	(cd `${PWD_COMMAND}`/include ; \
3898169699Skan	 tar -cf - .; exit 0) | (cd $(DESTDIR)$(libsubdir)/include; tar xpf - )
3899169699Skan
3900169699Skanreal-install-headers-cpio:
3901169699Skan	cd `${PWD_COMMAND}`/include ; \
3902169699Skan	find . -print | cpio -pdum $(DESTDIR)$(libsubdir)/include
3903169699Skan
3904169699Skanreal-install-headers-cp:
3905169699Skan	cp -p -r include $(DESTDIR)$(libsubdir)
3906169699Skan
3907169699Skan# Install supporting files for fixincludes to be run later.
3908169699Skaninstall-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-itoolsdirs \
3909169699Skan  macro_list xlimits.h
3910117404Skan	for file in $(USER_H); do \
3911117404Skan	  realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
3912117404Skan	  $(INSTALL_DATA) $$file \
3913132727Skan	    $(DESTDIR)$(itoolsdatadir)/include/$$realfile ; \
3914117404Skan	done
3915132727Skan	$(INSTALL_DATA) xlimits.h $(DESTDIR)$(itoolsdatadir)/include/limits.h
3916169699Skan	$(INSTALL_DATA) $(UNWIND_H) $(DESTDIR)$(itoolsdatadir)/include/unwind.h
3917169699Skan	$(INSTALL_DATA) $(srcdir)/gsyslimits.h \
3918169699Skan	  $(DESTDIR)$(itoolsdatadir)/gsyslimits.h
3919169699Skan	$(INSTALL_DATA) macro_list $(DESTDIR)$(itoolsdatadir)/macro_list
3920117404Skan	if [ x$(STMP_FIXPROTO) != x ] ; then \
3921169699Skan	  $(INSTALL_SCRIPT) $(mkinstalldirs) \
3922117404Skan		$(DESTDIR)$(itoolsdir)/mkinstalldirs ; \
3923132727Skan	  $(INSTALL_SCRIPT) $(srcdir)/fixproto $(DESTDIR)$(itoolsdir)/fixproto ; \
3924169699Skan	  $(INSTALL_PROGRAM) build/fix-header$(build_exeext) \
3925117404Skan		$(DESTDIR)$(itoolsdir)/fix-header$(build_exeext) ; \
3926117404Skan	else :; fi
3927132727Skan	echo 'SYSTEM_HEADER_DIR="'"$(SYSTEM_HEADER_DIR)"'"' \
3928132727Skan		> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3929117404Skan	echo 'OTHER_FIXINCLUDES_DIRS="$(OTHER_FIXINCLUDES_DIRS)"' \
3930132727Skan		>> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3931117404Skan	echo 'FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"' \
3932132727Skan		>> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3933132727Skan	echo 'STMP_FIXPROTO="$(STMP_FIXPROTO)"' \
3934132727Skan		>> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3935132727Skan	echo 'STMP_FIXINC="$(STMP_FIXINC)"' \
3936132727Skan		>> $(DESTDIR)$(itoolsdatadir)/mkheaders.conf
3937117404Skan
393850448Sobrien# Use this target to install the program `collect2' under the name `collect2'.
393950448Sobrieninstall-collect2: collect2 installdirs
3940132727Skan	$(INSTALL_PROGRAM) collect2$(exeext) $(DESTDIR)$(libexecsubdir)/collect2$(exeext)
394118334Speter# Install the driver program as $(libsubdir)/gcc for collect2.
3942132727Skan	$(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(libexecsubdir)/gcc$(exeext)
394318334Speter
394418334Speter# Cancel installation by deleting the installed files.
3945132727Skanuninstall: lang.uninstall
3946110621Skan	-rm -rf $(DESTDIR)$(libsubdir)
3947132727Skan	-rm -rf $(DESTDIR)$(libexecsubdir)
3948110621Skan	-rm -rf $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
3949117404Skan	-rm -f $(DESTDIR)$(bindir)/$(CPP_INSTALL_NAME)$(exeext)
3950117404Skan	-if [ x$(cpp_install_dir) != x ]; then \
3951117404Skan	  rm -f $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
3952117404Skan	else true; fi
3953110621Skan	-rm -rf $(DESTDIR)$(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext)
3954110621Skan	-rm -rf $(DESTDIR)$(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext)
3955110621Skan	-rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext)
3956110621Skan	-rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext)
3957110621Skan	-rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext)
3958110621Skan	-rm -rf $(DESTDIR)$(man1dir)/protoize$(man1ext)
3959110621Skan	-rm -rf $(DESTDIR)$(man1dir)/unprotoize$(man1ext)
3960110621Skan	-rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
3961110621Skan	-rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info*
396250448Sobrien#
396390081Sobrien# These targets are for the dejagnu testsuites. The file site.exp
396450448Sobrien# contains global variables that all the testsuites will use.
396550448Sobrien
396650448Sobrientarget_subdir = @target_subdir@
396750448Sobrien
396850448Sobriensite.exp: ./config.status Makefile
396950448Sobrien	@echo "Making a new config file..."
397050448Sobrien	-@rm -f ./tmp?
397190081Sobrien	@$(STAMP) site.exp
397250448Sobrien	-@mv site.exp site.bak
397350448Sobrien	@echo "## these variables are automatically generated by make ##" > ./tmp0
397450448Sobrien	@echo "# Do not edit here. If you wish to override these values" >> ./tmp0
397550448Sobrien	@echo "# add them to the last section" >> ./tmp0
3976117404Skan	@echo "set rootme \"`${PWD_COMMAND}`\"" >> ./tmp0
3977117404Skan	@echo "set srcdir \"`cd ${srcdir}; ${PWD_COMMAND}`\"" >> ./tmp0
3978132727Skan	@echo "set host_triplet $(host)" >> ./tmp0
3979132727Skan	@echo "set build_triplet $(build)" >> ./tmp0
398050448Sobrien	@echo "set target_triplet $(target)" >> ./tmp0
3981132727Skan	@echo "set target_alias $(target_noncanonical)" >> ./tmp0
3982169699Skan	@echo "set libiconv \"$(LIBICONV)\"" >> ./tmp0
398350448Sobrien# CFLAGS is set even though it's empty to show we reserve the right to set it.
398450448Sobrien	@echo "set CFLAGS \"\"" >> ./tmp0
3985132727Skan	@echo "set CXXFLAGS \"\"" >> ./tmp0
3986169699Skan	@echo "set HOSTCC \"$(CC)\"" >> ./tmp0
3987169699Skan	@echo "set HOSTCFLAGS \"$(CFLAGS)\"" >> ./tmp0
398890081Sobrien	@echo "set TESTING_IN_BUILD_TREE 1" >> ./tmp0
398990081Sobrien	@echo "set HAVE_LIBSTDCXX_V3 1" >> ./tmp0
399050448Sobrien# If newlib has been configured, we need to pass -B to gcc so it can find
399150448Sobrien# newlib's crt0.o if it exists.  This will cause a "path prefix not used"
399250448Sobrien# message if it doesn't, but the testsuite is supposed to ignore the message -
399350448Sobrien# it's too difficult to tell when to and when not to pass -B (not all targets
399450448Sobrien# have crt0's).  We could only add the -B if ../newlib/crt0.o exists, but that
399550448Sobrien# seems like too selective a test.
399650448Sobrien# ??? Another way to solve this might be to rely on linker scripts.  Then
399750448Sobrien# theoretically the -B won't be needed.
399850448Sobrien# We also need to pass -L ../ld so that the linker can find ldscripts.
3999132727Skan	@if [ -d $(objdir)/../$(target_subdir)/newlib ] \
4000132727Skan	    && [ "${host}" != "${target}" ]; then \
4001132727Skan	  echo "set newlib_cflags \"-I$(objdir)/../$(target_subdir)/newlib/targ-include -I\$$srcdir/../newlib/libc/include\"" >> ./tmp0; \
4002132727Skan	  echo "set newlib_ldflags \"-B$(objdir)/../$(target_subdir)/newlib/\"" >> ./tmp0; \
400350448Sobrien	  echo "append CFLAGS \" \$$newlib_cflags\"" >> ./tmp0; \
400450448Sobrien	  echo "append CXXFLAGS \" \$$newlib_cflags\"" >> ./tmp0; \
400550448Sobrien	  echo "append LDFLAGS \" \$$newlib_ldflags\"" >> ./tmp0; \
400650448Sobrien	else true; \
400750448Sobrien	fi
400850448Sobrien	@if [ -d $(objdir)/../ld ] ; then \
400950448Sobrien	  echo "append LDFLAGS \" -L$(objdir)/../ld\"" >> ./tmp0; \
401050448Sobrien	else true; \
401150448Sobrien	fi
401250448Sobrien	echo "set tmpdir $(objdir)/testsuite" >> ./tmp0
401350448Sobrien	@echo "set srcdir \"\$${srcdir}/testsuite\"" >> ./tmp0
4014132727Skan	@if [ "X$(ALT_CC_UNDER_TEST)" != "X" ] ; then \
4015132727Skan	  echo "set ALT_CC_UNDER_TEST \"$(ALT_CC_UNDER_TEST)\"" >> ./tmp0; \
4016132727Skan	else true; \
4017132727Skan	fi
4018117404Skan	@if [ "X$(ALT_CXX_UNDER_TEST)" != "X" ] ; then \
4019132727Skan	  echo "set ALT_CXX_UNDER_TEST \"$(ALT_CXX_UNDER_TEST)\"" >> ./tmp0; \
4020117404Skan	else true; \
4021117404Skan	fi
4022117404Skan	@if [ "X$(COMPAT_OPTIONS)" != "X" ] ; then \
4023132727Skan	  echo "set COMPAT_OPTIONS \"$(COMPAT_OPTIONS)\"" >> ./tmp0; \
4024117404Skan	else true; \
4025117404Skan	fi
402650448Sobrien	@echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0
402750448Sobrien	@cat ./tmp0 > site.exp
402850448Sobrien	@cat site.bak | sed \
402950448Sobrien		-e '1,/^## All variables above are.*##/ d' >> site.exp
403050448Sobrien	-@rm -f ./tmp?
403150448Sobrien
4032117404SkanCHECK_TARGETS = check-gcc @check_languages@
403350448Sobrien
403450448Sobriencheck: $(CHECK_TARGETS)
403550448Sobrien
403690081Sobrien# The idea is to parallelize testing of multilibs, for example:
403790081Sobrien#   make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
403890081Sobrien# will run 3 concurrent sessions of check-gcc, eventually testing
403990081Sobrien# all 10 combinations.  GNU make is required, as is a shell that expands
404090081Sobrien# alternations within braces.
4041132727Skanlang_checks_parallel = $(lang_checks:=//%)
4042132727Skan$(lang_checks_parallel): site.exp
404390081Sobrien	target=`echo "$@" | sed 's,//.*,,'`; \
404490081Sobrien	variant=`echo "$@" | sed 's,^[^/]*//,,'`; \
404590081Sobrien	vardots=`echo "$$variant" | sed 's,/,.,g'`; \
404690081Sobrien	$(MAKE) TESTSUITEDIR="testsuite.$$vardots" \
404790081Sobrien	  RUNTESTFLAGS="--target_board=$$variant $(RUNTESTFLAGS)" \
404890081Sobrien	  "$$target"
404950448Sobrien
405090081SobrienTESTSUITEDIR = testsuite
405190081Sobrien
405290081Sobrien$(TESTSUITEDIR)/site.exp: site.exp
4053169699Skan	-test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
405490081Sobrien	-rm -f $@
405590081Sobrien	sed '/set tmpdir/ s|testsuite|$(TESTSUITEDIR)|' < site.exp > $@
405690081Sobrien
4057169699Skan$(lang_checks): check-% : site.exp
4058169699Skan	-test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
4059169699Skan	test -d $(TESTSUITEDIR)/$* || mkdir $(TESTSUITEDIR)/$*
4060117404Skan	-(rootme=`${PWD_COMMAND}`; export rootme; \
4061117404Skan	srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
4062169699Skan	cd $(TESTSUITEDIR)/$*; \
4063169699Skan	rm -f tmp-site.exp; \
4064169699Skan	sed '/set tmpdir/ s|testsuite|$(TESTSUITEDIR)/$*|' \
4065169699Skan		< ../../site.exp > tmp-site.exp; \
4066169699Skan	$(SHELL) $${srcdir}/../move-if-change tmp-site.exp site.exp; \
406750448Sobrien	EXPECT=${EXPECT} ; export EXPECT ; \
406850448Sobrien	if [ -f $${rootme}/../expect/expect ] ; then  \
4069169699Skan	   TCL_LIBRARY=`cd .. ; cd $${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
407050448Sobrien	    export TCL_LIBRARY ; fi ; \
4071132727Skan	$(RUNTEST) --tool $* $(RUNTESTFLAGS))
407250448Sobrien
407390081Sobriencheck-consistency: testsuite/site.exp
4074117404Skan	-rootme=`${PWD_COMMAND}`; export rootme; \
4075117404Skan	srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
407652298Sobrien	cd testsuite; \
407752298Sobrien	EXPECT=${EXPECT} ; export EXPECT ; \
407852298Sobrien	if [ -f $${rootme}/../expect/expect ] ; then  \
4079169699Skan	   TCL_LIBRARY=`cd .. ; cd $${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
408090081Sobrien	   export TCL_LIBRARY ; fi ; \
408190081Sobrien	$(RUNTEST) --tool consistency $(RUNTESTFLAGS)
408252298Sobrien
4083117404Skan# QMTest targets
4084117404Skan
4085117404Skan# The path to qmtest.
4086117404SkanQMTEST_PATH=qmtest
4087117404Skan
4088117404Skan# The flags to pass to qmtest.
4089117404SkanQMTESTFLAGS=
4090117404Skan
4091117404Skan# The flags to pass to "qmtest run".
4092132727SkanQMTESTRUNFLAGS=-f none --result-stream dejagnu_stream.DejaGNUStream
4093117404Skan
4094117404Skan# The command to use to invoke qmtest.
4095117404SkanQMTEST=${QMTEST_PATH} ${QMTESTFLAGS}
4096117404Skan
4097117404Skan# The tests (or suites) to run.
4098132727SkanQMTEST_GPP_TESTS=g++
4099117404Skan
4100117404Skan# The subdirectory of the OBJDIR that will be used to store the QMTest
4101117404Skan# test database configuration and that will be used for temporary
4102117404Skan# scratch space during QMTest's execution.
4103117404SkanQMTEST_DIR=qmtestsuite
4104117404Skan
4105117404Skan# Create the QMTest database configuration.
4106117404Skan${QMTEST_DIR} stamp-qmtest:
4107132727Skan	${QMTEST} -D ${QMTEST_DIR} create-tdb \
4108132727Skan	    -c gcc_database.GCCDatabase \
4109132727Skan            -a srcdir=`cd ${srcdir}/testsuite && ${PWD_COMMAND}` && \
4110132727Skan	    $(STAMP) stamp-qmtest
4111117404Skan
4112117404Skan# Create the QMTest context file.
4113117404Skan${QMTEST_DIR}/context: stamp-qmtest
4114132727Skan	rm -f $@
4115132727Skan	echo "CompilerTable.languages=c cplusplus" >> $@
4116132727Skan	echo "CompilerTable.c_kind=GCC" >> $@
4117132727Skan	echo "CompilerTable.c_path=${objdir}/xgcc" >> $@
4118132727Skan	echo "CompilerTable.c_options=-B${objdir}/" >> $@
4119132727Skan	echo "CompilerTable.cplusplus_kind=GCC" >> $@
4120132727Skan	echo "CompilerTable.cplusplus_path=${objdir}/g++" >> $@
4121132727Skan	echo "CompilerTable.cplusplus_options=-B${objdir}/" >> $@
4122132727Skan	echo "DejaGNUTest.target=${target_noncanonical}" >> $@
4123117404Skan
4124117404Skan# Run the G++ testsuite using QMTest.
4125132727Skanqmtest-g++: ${QMTEST_DIR}/context
4126117404Skan	cd ${QMTEST_DIR} && ${QMTEST} run ${QMTESTRUNFLAGS} -C context \
4127132727Skan	   -o g++.qmr ${QMTEST_GPP_TESTS}
4128117404Skan
4129117404Skan# Use the QMTest GUI.
4130117404Skanqmtest-gui: ${QMTEST_DIR}/context
4131117404Skan	cd ${QMTEST_DIR} && ${QMTEST} gui -C context
4132117404Skan
4133117404Skan.PHONY: qmtest-g++
4134117404Skan
4135117404Skan# Run Paranoia on real.c.
4136117404Skan
4137117404Skanparanoia.o: $(srcdir)/../contrib/paranoia.cc $(CONFIG_H) $(SYSTEM_H) \
4138169699Skan  $(REAL_H) $(TREE_H)
4139169699Skan	g++ -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
4140117404Skan
4141117404Skanparanoia: paranoia.o real.o $(LIBIBERTY)
4142117404Skan	g++ -o $@ paranoia.o real.o $(LIBIBERTY)
4143117404Skan
414418334Speter# These exist for maintenance purposes.
414518334Speter
414618334Speter# Update the tags table.
4147132727SkanTAGS: lang.tags
4148132727Skan	(cd $(srcdir);					\
4149132727Skan	incs= ;						\
4150132727Skan	list='$(SUBDIRS)'; for dir in $$list; do	\
4151132727Skan	  if test -f $$dir/TAGS; then			\
4152132727Skan	    incs="$$incs --include $$dir/TAGS.sub";	\
4153132727Skan	  fi;						\
4154132727Skan	done;						\
4155169699Skan	etags -o TAGS.sub *.y *.h *.c; \
4156132727Skan	etags --include TAGS.sub $$incs)
415718334Speter
4158132727Skan# ------------------------------------------------------
4159132727Skan# Bootstrap-related targets (not used during 'make all')
4160132727Skan# ------------------------------------------------------
4161132727Skan
416290081Sobrien# A list of files to be destroyed during "lean" builds.
4163169699SkanVOL_FILES=`echo $(BACKEND) $(OBJS) $(C_OBJS) *.c *.h gen*`
416418334Speter
416590081Sobrien# Flags to pass to stage2 and later recursive makes.  Note that the
416690081Sobrien# WARN_CFLAGS setting can't be to the expansion of GCC_WARN_CFLAGS in
416790081Sobrien# the context of the stage_x rule.
4168132727Skan
4169132727SkanPOSTSTAGE1_FLAGS_TO_PASS = \
4170132727Skan	ADAFLAGS="$(BOOT_ADAFLAGS)" \
417190081Sobrien	CFLAGS="$(BOOT_CFLAGS)" \
417290081Sobrien	LDFLAGS="$(BOOT_LDFLAGS)" \
417390081Sobrien	WARN_CFLAGS="\$$(GCC_WARN_CFLAGS)" \
417490081Sobrien	STRICT_WARN="$(STRICT2_WARN)" \
417590081Sobrien	libdir=$(libdir) \
417690081Sobrien	LANGUAGES="$(LANGUAGES)" \
4177132727Skan	MAKEINFO="$(MAKEINFO)" \
4178132727Skan	MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \
417990081Sobrien	MAKEOVERRIDES= \
418090081Sobrien	OUTPUT_OPTION="-o \$$@"
418118334Speter
4182132727SkanSTAGE2_FLAGS_TO_PASS = \
4183132727Skan	CFLAGS="$(BOOT_CFLAGS)" \
4184169699Skan	WERROR="$(WERROR_FLAGS)" \
4185132727Skan
4186132727SkanSTAGEPROFILE_FLAGS_TO_PASS = \
4187169699Skan	CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"
4188132727Skan
4189132727Skan# Files never linked into the final executable produces warnings about missing
4190132727Skan# profile.
4191132727SkanSTAGEFEEDBACK_FLAGS_TO_PASS = \
4192169699Skan	CFLAGS="$(BOOT_CFLAGS) -fprofile-use -freorder-blocks-and-partition"
4193132727Skan
419490081Sobrien# Only build the C compiler for stage1, because that is the only one that
419590081Sobrien# we can guarantee will build with the native compiler, and also it is the
419690081Sobrien# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS),
419790081Sobrien# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
419890081Sobrien# overrideable (for a bootstrap build stage1 also builds gcc.info).
4199169699Skan# The stage1 compiler is always built with checking enabled.
420090081Sobrienstage1_build:
4201132727Skan	$(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" \
4202169699Skan		CFLAGS="$(STAGE1_CFLAGS) $(STAGE1_CHECKING_CFLAGS)" \
4203169699Skan		MAKEINFO="$(MAKEINFO)" MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \
4204169699Skan		COVERAGE_FLAGS= OBJS-onestep="$(OBJS)"
420590081Sobrien	$(STAMP) stage1_build
420690081Sobrien	echo stage1_build > stage_last
420718334Speter
420890081Sobrienstage1_copy: stage1_build
420990081Sobrien	$(MAKE) stage1
421090081Sobrien	$(STAMP) stage1_copy
421190081Sobrien	echo stage2_build > stage_last
421218334Speter
421390081Sobrienstage2_build: stage1_copy
4214132727Skan	$(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/" \
421590081Sobrien		 STAGE_PREFIX=stage1/ \
4216132727Skan		 $(POSTSTAGE1_FLAGS_TO_PASS) \
421790081Sobrien		 $(STAGE2_FLAGS_TO_PASS)
421890081Sobrien	$(STAMP) stage2_build
421990081Sobrien	echo stage2_build > stage_last
422018334Speter
422190081Sobrienstage2_copy: stage2_build
422290081Sobrien	$(MAKE) stage2
422390081Sobrien	$(STAMP) stage2_copy
422490081Sobrien	echo stage3_build > stage_last
422518334Speter
4226132727Skanstageprofile_build: stage1_copy
4227132727Skan	$(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/" \
4228132727Skan		 STAGE_PREFIX=stage1/ \
4229132727Skan		 $(POSTSTAGE1_FLAGS_TO_PASS) \
4230132727Skan		 $(STAGEPROFILE_FLAGS_TO_PASS)
4231132727Skan	$(STAMP) stageprofile_build
4232132727Skan	echo stageprofile_build > stage_last
4233132727Skan
4234132727Skanstageprofile_copy: stageprofile_build
4235132727Skan	$(MAKE) stageprofile
4236132727Skan	$(STAMP) stageprofile_copy
4237132727Skan	echo stagefeedback_build > stage_last
4238132727Skan
423990081Sobrienstage3_build: stage2_copy
4240132727Skan	$(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/" \
424190081Sobrien		 STAGE_PREFIX=stage2/ \
4242132727Skan		 $(POSTSTAGE1_FLAGS_TO_PASS) \
424390081Sobrien		 $(STAGE2_FLAGS_TO_PASS)
424490081Sobrien	$(STAMP) stage3_build
424590081Sobrien	echo stage3_build > stage_last
424652298Sobrien
4247132727Skanstagefeedback_build: stageprofile_copy stage1_copy
4248132727Skan	$(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/" \
4249132727Skan		 STAGE_PREFIX=stage1/ \
4250132727Skan		 $(POSTSTAGE1_FLAGS_TO_PASS) \
4251132727Skan		 $(STAGEFEEDBACK_FLAGS_TO_PASS)
4252132727Skan	$(STAMP) stagefeedback_build
4253132727Skan	echo stagefeedback_build > stage_last
4254132727Skan
4255132727Skanstagefeedback_copy: stagefeedback_build
4256132727Skan	$(MAKE) stagefeedback
4257132727Skan	$(STAMP) stagefeedback_copy
4258132727Skan	echo stagefeedback2_build > stage_last
4259132727Skan
426090081Sobrien# For bootstrap4:
426190081Sobrienstage3_copy: stage3_build
426290081Sobrien	$(MAKE) stage3
426390081Sobrien	$(STAMP) stage3_copy
426490081Sobrien	echo stage4_build > stage_last
426518334Speter
426690081Sobrienstage4_build: stage3_copy
4267132727Skan	$(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/" \
426890081Sobrien		 STAGE_PREFIX=stage3/ \
4269132727Skan		 $(POSTSTAGE1_FLAGS_TO_PASS) \
427090081Sobrien		 $(STAGE2_FLAGS_TO_PASS)
427190081Sobrien	$(STAMP) stage4_build
427290081Sobrien	echo stage4_build > stage_last
427318334Speter
427490081Sobrien# Additional steps for *-lean targets:
427590081Sobrienclean_s1: stage1_copy
427690081Sobrien	-(cd stage1 && rm -f $(VOL_FILES))
427790081Sobrien	$(STAMP) clean_s1
427818334Speter
427990081Sobrienclean_s2: stage2_copy
428090081Sobrien	-rm -rf stage1
428190081Sobrien	$(STAMP) clean_s2
428218334Speter
428390081Sobrien# The various entry points for bootstrapping.
428450448Sobrien
428590081Sobrienbootstrap: stage3_build
428690081Sobrien	@echo
428790081Sobrien	@echo Bootstrap complete - make \"quickstrap\" to redo last build,
428890081Sobrien	@echo \"restage1\" through \"restage3\" to rebuild specific stages,
4289117404Skan	@echo \"restrap\" to redo the bootstrap from stage1, or
4290117404Skan	@echo \"cleanstrap\" to redo the bootstrap from scratch.
429190081Sobrien
429290081Sobrienbootstrap-lean : clean_s1 clean_s2 stage3_build
429390081Sobrien	@echo
429490081Sobrien	@echo Bootstrap complete - make \"quickstrap\" to redo last build,
429590081Sobrien	@echo or \"cleanstrap\" to redo the bootstrap from scratch.
429690081Sobrien
429790081Sobrienbootstrap2: bootstrap
429890081Sobrien
429990081Sobrienbootstrap2-lean : bootstrap-lean
430090081Sobrien
430190081Sobrienbootstrap3 bootstrap3-lean: bootstrap
430290081Sobrien
430390081Sobrienbootstrap4 bootstrap4-lean: stage4_build
430490081Sobrien
4305132727Skanunstage1 unstage2 unstage3 unstage4 unstageprofile unstagefeedback:
430690081Sobrien	-set -vx; stage=`echo $@ | sed -e 's/un//'`; \
430790081Sobrien	rm -f $$stage/as$(exeext); \
4308169699Skan	rm -f $$stage/nm$(exeext); \
430990081Sobrien	rm -f $$stage/collect-ld$(exeext); \
431090081Sobrien	if test -d $$stage; then \
4311132727Skan	  mv $$stage/specs $(SPECS) 2>/dev/null || :; \
431290081Sobrien	  mv $$stage/* . 2>/dev/null; \
431390081Sobrien	  for i in `cd $$stage; echo *` ; do \
431490081Sobrien	    if test -d $$stage/$$i; then \
431590081Sobrien	      mv $$stage/$$i/* $$i/. 2>/dev/null; \
431690081Sobrien	    else \
431790081Sobrien	      mv $$stage/$$i .; \
431890081Sobrien	    fi; \
431990081Sobrien	  done \
432090081Sobrien	fi ; \
432190081Sobrien	rm -f $${stage}_build $${stage}_copy ;\
432290081Sobrien	echo $${stage}_build > stage_last
432390081Sobrien
432490081Sobrienrestage1: unstage1
4325132727Skan	$(MAKE) $(REMAKEFLAGS) stage1_build
432690081Sobrien
432790081Sobrienrestage2: unstage2
4328132727Skan	$(MAKE) $(REMAKEFLAGS) stage2_build
432990081Sobrien
433090081Sobrienrestage3: unstage3
4331132727Skan	$(MAKE) $(REMAKEFLAGS) stage3_build
433290081Sobrien
433390081Sobrienrestage4: unstage4
4334132727Skan	$(MAKE) $(REMAKEFLAGS) stage4_build
433590081Sobrien
4336132727Skanrestageprofile: unstageprofile
4337132727Skan	$(MAKE) $(REMAKEFLAGS) stageprofile_build
4338132727Skan
4339132727Skanrestagefeedback: unstagefeedback
4340132727Skan	$(MAKE) $(REMAKEFLAGS) stagefeedback_build
4341132727Skan
4342132727Skan# Bubble up a bugfix through all the stages.  Primarily useful for fixing
4343132727Skan# bugs that cause the compiler to crash while building stage 2.
434490081Sobrienbubblestrap:
4345132727Skan	if test -f stage_last; then \
4346132727Skan	  LAST=`sed -e 's/_build//' < stage_last`; \
4347132727Skan	  if test "$$LAST" != "stage1"; then \
4348132727Skan	    $(MAKE) $(REMAKEFLAGS) $$LAST; \
4349132727Skan	    $(STAMP) $${LAST}_copy; \
4350132727Skan	  fi; \
435190081Sobrien	fi
4352132727Skan	if test -f stage1_copy; then $(MAKE) unstage1; fi
4353132727Skan	$(MAKE) $(REMAKEFLAGS) stage1_copy
4354132727Skan	if test -f stage2_copy; then $(MAKE) unstage2; fi
4355132727Skan	$(MAKE) $(REMAKEFLAGS) stage2_copy
4356132727Skan	if test -f stage3_copy; then $(MAKE) unstage3; fi
4357132727Skan	$(MAKE) $(REMAKEFLAGS) stage3_build
4358132727Skan	if test -f stage4_copy; then \
4359132727Skan	  $(MAKE) $(REMAKEFLAGS) stage3_copy; $(MAKE) unstage4; \
4360132727Skan	  $(MAKE) $(REMAKEFLAGS) stage4_build || exit 1; \
4361132727Skan	fi
436290081Sobrien
4363169699SkanBOOTSTRAPPING := $(shell if test -f ../stage_last; then echo yes; else echo no; fi)
4364169699Skanifeq ($(BOOTSTRAPPING),yes)
4365169699Skan# Provide quickstrap as a target that people can type into the gcc directory,
4366169699Skan# and that fails if you're not into it.
4367169699Skanquickstrap: all
4368169699Skanelse
436990081Sobrienquickstrap:
437090081Sobrien	if test -f stage_last ; then \
4371132727Skan	  LAST=`cat stage_last`; rm $$LAST; $(MAKE) $(REMAKEFLAGS) $$LAST; \
437290081Sobrien	else \
4373132727Skan	  $(MAKE) $(REMAKEFLAGS) stage1_build; \
437490081Sobrien	fi
4375169699Skanendif
437690081Sobrien
437790081Sobriencleanstrap:
437890081Sobrien	-$(MAKE) clean
4379132727Skan	$(MAKE) $(REMAKEFLAGS) bootstrap
438090081Sobrien
4381117404Skanunstrap:
4382117404Skan	-rm -rf stage[234]*
4383117404Skan	$(MAKE) unstage1
4384132727Skan	-rm -f stage_last
4385117404Skan
4386117404Skan# Differs from cleanstrap in that it starts from the earlier stage1 build,
4387117404Skan# not from scratch.
4388117404Skanrestrap:
4389117404Skan	$(MAKE) unstrap
4390132727Skan	$(MAKE) $(REMAKEFLAGS) bootstrap
4391117404Skan
4392132727Skan# These targets compare the object files in the current directory with
4393132727Skan# those in a stage directory.  We need to skip the first N bytes of
4394132727Skan# each object file.  The "slow" mechanism assumes nothing special
4395132727Skan# about cmp and uses the tail command to skip.  ./ avoids a bug in
4396132727Skan# some versions of tail.  The "gnu" targets use gnu cmp (diffutils
4397132727Skan# v2.4 or later), to avoid running tail and the overhead of twice
4398132727Skan# copying each object file.  Likewise, the "fast" targets use the skip
4399132727Skan# parameter of cmp available on some systems to accomplish the same
4400132727Skan# thing.  An exit status of 1 is precisely the result we're looking
4401132727Skan# for (other values mean other problems).
4402132727Skanslowcompare slowcompare3 slowcompare4 slowcompare-lean slowcompare3-lean slowcompare4-lean \
4403132727Skanfastcompare fastcompare3 fastcompare4 fastcompare-lean fastcompare3-lean fastcompare4-lean \
4404132727Skan gnucompare  gnucompare3  gnucompare4  gnucompare-lean  gnucompare3-lean  gnucompare4-lean: force
440550448Sobrien	-rm -f .bad_compare
4406132727Skan	case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
4407169699Skan	for dir in . $(SUBDIRS) libgcc; do \
440818334Speter	  if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
440918334Speter	    for file in $$dir/*$(objext); do \
4410132727Skan	      case "$@" in \
4411132727Skan		slowcompare* ) \
4412169699Skan		  if tail -c +1 </dev/null >/dev/null 2>&1; then \
4413169699Skan		    skip16='-c +17'; \
4414169699Skan		  else \
4415169699Skan		    skip16='+17c'; \
4416169699Skan		  fi; \
4417169699Skan		  tail $$skip16 ./$$file > tmp-foo1; \
4418169699Skan		  tail $$skip16 stage$$stage/$$file > tmp-foo2; \
4419169699Skan		  cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1; \
4420169699Skan		  cmpret=$$?; \
4421132727Skan		  ;; \
4422132727Skan		fastcompare* ) \
4423132727Skan		  cmp $$file stage$$stage/$$file 16 16 > /dev/null 2>&1; \
4424169699Skan		  cmpret=$$?; \
4425132727Skan		  ;; \
4426132727Skan		gnucompare* ) \
4427132727Skan		  cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1; \
4428169699Skan		  cmpret=$$?; \
4429132727Skan		  ;; \
4430132727Skan	      esac ; \
4431169699Skan	      if test $$cmpret -eq 1; then \
4432169699Skan		case $$file in \
4433169699Skan		  ./cc*-checksum$(objext) | libgcc/* ) \
4434169699Skan		    echo warning: $$file differs;; \
4435169699Skan		  *) \
4436169699Skan		    echo $$file differs >> .bad_compare;; \
4437169699Skan		esac ; \
4438169699Skan	      fi; \
443918334Speter	    done; \
444052298Sobrien	  else true; fi; \
444118334Speter	done
444218334Speter	-rm -f tmp-foo*
4443132727Skan	case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
444450448Sobrien	if [ -f .bad_compare ]; then \
444550448Sobrien	  echo "Bootstrap comparison failure!"; \
444650448Sobrien	  cat .bad_compare; \
444750448Sobrien	  exit 1; \
444850448Sobrien	else \
444950448Sobrien	  case "$@" in \
445050448Sobrien	    *-lean ) rm -rf stage$$stage ;; \
445150448Sobrien	    *) ;; \
445250448Sobrien	  esac; true; \
445350448Sobrien	fi
445418334Speter
4455132727Skan# Forwarding wrappers to the most appropriate version.
4456132727Skancompare: @make_compare_target@
4457132727Skancompare3: @make_compare_target@3
4458132727Skancompare4: @make_compare_target@4
4459132727Skancompare-lean: @make_compare_target@-lean
4460132727Skancompare3-lean: @make_compare_target@3-lean
4461132727Skancompare4-lean: @make_compare_target@4-lean
446218334Speter
446318334Speter# Copy the object files from a particular stage into a subdirectory.
446418334Speterstage1-start:
446518334Speter	-if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
446690081Sobrien	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stage1
4467132727Skan	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
446818334Speter	 do \
446918334Speter	   if [ -d stage1/$$dir ] ; then true ; else mkdir stage1/$$dir ; fi ; \
447018334Speter	 done
4471169699Skan	-rm -f stage1/libgcc.a stage1/libgcc_eh.a stage1/libgcov.a
4472169699Skan	-rm -f stage1/libgcc_s*$(SHLIB_EXT)
4473169699Skan	-rm -f stage1/libunwind.a stage1/libunwind*$(SHLIB_EXT)
4474132727Skan# If SPECS is overridden, make sure it is `installed' as specs.
4475132727Skan	-mv $(SPECS) stage1/specs
4476169699Skan	-mv $(STAGEMOVESTUFF) stage1
4477169699Skan	-mv build/* stage1/build
4478169699Skan	-cp -p $(STAGECOPYSTUFF) stage1
447918334Speter# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
448018334Speter# dir will work properly.
448190081Sobrien	-if [ -f as$(exeext) ] ; then (cd stage1 && $(LN_S) ../as$(exeext) .) ; else true ; fi
448290081Sobrien	-if [ -f ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
448390081Sobrien	-if [ -f collect-ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
448418334Speter	-cp libgcc.a stage1
4485132727Skan	-$(RANLIB_FOR_TARGET) stage1/libgcc.a
4486132727Skan	-cp libgcov.a stage1
4487132727Skan	-$(RANLIB_FOR_TARGET) stage1/libgcov.a
448890081Sobrien	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage1; \
448990081Sobrien	   $(RANLIB_FOR_TARGET) stage1/libgcc_eh.a; \
4490132727Skan	fi
4491132727Skan	-cp libgcc_s*$(SHLIB_EXT) stage1
4492146906Skan	-cp libunwind.a libunwind*$(SHLIB_EXT) stage1
449350448Sobrien	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
449450448Sobrien	  cp stage1/$${f} . ; \
449550448Sobrien	else true; \
449650448Sobrien	fi; done
449718334Speterstage1: force stage1-start lang.stage1
4498132727Skan	-for dir in . $(SUBDIRS) ; \
4499132727Skan	do \
4500132727Skan	  rm -f $$dir/*$(coverageexts) ; \
4501132727Skan	done
450218334Speter
450318334Speterstage2-start:
450418334Speter	-if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
450590081Sobrien	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stage2
4506132727Skan	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
450718334Speter	 do \
450818334Speter	   if [ -d stage2/$$dir ] ; then true ; else mkdir stage2/$$dir ; fi ; \
450918334Speter	 done
4510169699Skan	-rm -f stage2/libgcc.a stage2/libgcov.a stage2/libgcc_eh.a
4511169699Skan	-rm -f stage2/libgcc_s*$(SHLIB_EXT)
4512169699Skan	-rm -f stage2/libunwind.a stage2/libunwind*$(SHLIB_EXT)
4513132727Skan# If SPECS is overridden, make sure it is `installed' as specs.
4514132727Skan	-mv $(SPECS) stage2/specs
4515169699Skan	-mv $(STAGEMOVESTUFF) stage2
4516169699Skan	-mv build/* stage2/build
4517169699Skan	-cp -p $(STAGECOPYSTUFF) stage2
451818334Speter# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
451918334Speter# dir will work properly.
452090081Sobrien	-if [ -f as$(exeext) ] ; then (cd stage2 && $(LN_S) ../as$(exeext) .) ; else true ; fi
452190081Sobrien	-if [ -f ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
452290081Sobrien	-if [ -f collect-ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
452318334Speter	-cp libgcc.a stage2
4524132727Skan	-$(RANLIB_FOR_TARGET) stage2/libgcc.a
4525132727Skan	-cp libgcov.a stage2
4526132727Skan	-$(RANLIB_FOR_TARGET) stage2/libgcov.a
452790081Sobrien	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage2; \
452890081Sobrien	   $(RANLIB_FOR_TARGET) stage2/libgcc_eh.a; \
4529132727Skan	fi
4530132727Skan	-cp libgcc_s*$(SHLIB_EXT) stage2
4531146906Skan	-cp libunwind.a libunwind*$(SHLIB_EXT) stage2
453250448Sobrien	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
453350448Sobrien	  cp stage2/$${f} . ; \
453450448Sobrien	else true; \
453550448Sobrien	fi; done
453618334Speterstage2: force stage2-start lang.stage2
453718334Speter
453818334Speterstage3-start:
453918334Speter	-if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
454090081Sobrien	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stage3
4541132727Skan	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
454218334Speter	 do \
454318334Speter	   if [ -d stage3/$$dir ] ; then true ; else mkdir stage3/$$dir ; fi ; \
454418334Speter	 done
4545169699Skan	-rm -f stage3/libgcc.a stage3/libgcov.a stage3/libgcc_eh.a
4546169699Skan	-rm -f stage3/libgcc_s*$(SHLIB_EXT)
4547169699Skan	-rm -f stage3/libunwind.a stage3/libunwind*$(SHLIB_EXT)
4548132727Skan# If SPECS is overridden, make sure it is `installed' as specs.
4549132727Skan	-mv $(SPECS) stage3/specs
4550169699Skan	-mv $(STAGEMOVESTUFF) stage3
4551169699Skan	-mv build/* stage3/build
4552169699Skan	-cp -p $(STAGECOPYSTUFF) stage3
455318334Speter# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
455418334Speter# dir will work properly.
455590081Sobrien	-if [ -f as$(exeext) ] ; then (cd stage3 && $(LN_S) ../as$(exeext) .) ; else true ; fi
455690081Sobrien	-if [ -f ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
455790081Sobrien	-if [ -f collect-ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
455818334Speter	-cp libgcc.a stage3
4559132727Skan	-$(RANLIB_FOR_TARGET) stage3/libgcc.a
4560132727Skan	-cp libgcov.a stage3
4561132727Skan	-$(RANLIB_FOR_TARGET) stage3/libgcov.a
456290081Sobrien	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage3; \
456390081Sobrien	   $(RANLIB_FOR_TARGET) stage3/libgcc_eh.a; \
4564132727Skan	fi
4565132727Skan	-cp libgcc_s*$(SHLIB_EXT) stage3
4566146906Skan	-cp libunwind.a libunwind*$(SHLIB_EXT) stage3
456750448Sobrien	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
456850448Sobrien	  cp stage3/$${f} . ; \
456950448Sobrien	else true; \
457050448Sobrien	fi; done
457118334Speterstage3: force stage3-start lang.stage3
457218334Speter
457318334Speterstage4-start:
457418334Speter	-if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
457590081Sobrien	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stage4
4576132727Skan	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
457718334Speter	 do \
457818334Speter	   if [ -d stage4/$$dir ] ; then true ; else mkdir stage4/$$dir ; fi ; \
457918334Speter	 done
4580169699Skan	-rm -f stage4/libgcc.a stage4/libgcov.a stage4/libgcc_eh.a
4581169699Skan	-rm -f stage4/libgcc_s*$(SHLIB_EXT)
4582169699Skan	-rm -f stage4/libunwind.a stage4/libunwind*$(SHLIB_EXT)
4583132727Skan# If SPECS is overridden, make sure it is `installed' as specs.
4584132727Skan	-mv $(SPECS) stage4/specs
4585169699Skan	-mv $(STAGEMOVESTUFF) stage4
4586169699Skan	-mv build/* stage4/build
4587169699Skan	-cp -p $(STAGECOPYSTUFF) stage4
458818334Speter# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
458918334Speter# dir will work properly.
459090081Sobrien	-if [ -f as$(exeext) ] ; then (cd stage4 && $(LN_S) ../as$(exeext) .) ; else true ; fi
459190081Sobrien	-if [ -f ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
459290081Sobrien	-if [ -f collect-ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
459318334Speter	-cp libgcc.a stage4
4594132727Skan	-$(RANLIB_FOR_TARGET) stage4/libgcc.a
4595132727Skan	-cp libgcov.a stage4
4596132727Skan	-$(RANLIB_FOR_TARGET) stage4/libgcov.a
459790081Sobrien	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage4; \
459890081Sobrien	   $(RANLIB_FOR_TARGET) stage4/libgcc_eh.a; \
4599132727Skan	fi
4600132727Skan	-cp libgcc_s*$(SHLIB_EXT) stage4
4601146906Skan	-cp libunwind.a libunwind*$(SHLIB_EXT) stage4
460250448Sobrien	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
460350448Sobrien	  cp stage4/$${f} . ; \
460450448Sobrien	else true; \
460550448Sobrien	fi; done
460618334Speterstage4: force stage4-start lang.stage4
460718334Speter
4608132727Skanstageprofile-start:
4609132727Skan	-if [ -d stageprofile ] ; then true ; else mkdir stageprofile ; fi
4610132727Skan	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stageprofile
4611132727Skan	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
4612132727Skan	 do \
4613132727Skan	   if [ -d stageprofile/$$dir ] ; then true ; else mkdir stageprofile/$$dir ; fi ; \
4614132727Skan	 done
4615169699Skan	-rm -f stageprofile/libgcc.a stageprofile/libgcov.a stageprofile/libgcc_eh.a
4616169699Skan	-rm -f stageprofile/libgcc_s*$(SHLIB_EXT)
4617169699Skan	-rm -f stageprofile/libunwind.a stageprofile/libunwind*$(SHLIB_EXT)
4618169699Skan	-mv $(STAGEMOVESTUFF) stageprofile
4619169699Skan	-mv build/* stageprofile/build
4620169699Skan	-cp -p $(STAGECOPYSTUFF) stageprofile
4621132727Skan# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
4622132727Skan# dir will work properly.
4623132727Skan	-if [ -f as$(exeext) ] ; then (cd stageprofile && $(LN_S) ../as$(exeext) .) ; else true ; fi
4624132727Skan	-if [ -f ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../ld$(exeext) .) ; else true ; fi
4625132727Skan	-if [ -f collect-ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
4626132727Skan	-cp libgcc.a stageprofile
4627132727Skan	-$(RANLIB_FOR_TARGET) stageprofile/libgcc.a
4628132727Skan	-cp libgcov.a stageprofile
4629132727Skan	-$(RANLIB_FOR_TARGET) stageprofile/libgcov.a
4630132727Skan	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stageprofile; \
4631132727Skan	   $(RANLIB_FOR_TARGET) stageprofile/libgcc_eh.a; \
4632132727Skan	fi
4633132727Skan	-cp libgcc_s*$(SHLIB_EXT) stageprofile
4634146906Skan	-cp libunwind.a libunwind*$(SHLIB_EXT) stageprofile
4635132727Skan	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
4636132727Skan	  cp stageprofile/$${f} . ; \
4637132727Skan	else true; \
4638132727Skan	fi; done
4639132727Skanstageprofile: force stageprofile-start lang.stageprofile
4640132727Skan
4641132727Skanstagefeedback-start:
4642132727Skan	-if [ -d stagefeedback ] ; then true ; else mkdir stagefeedback ; fi
4643132727Skan	$(MAKE) -f libgcc.mk libgcc-stage-start stage=stagefeedback
4644132727Skan	-subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
4645132727Skan	 do \
4646132727Skan	   if [ -d stagefeedback/$$dir ] ; then true ; else mkdir stagefeedback/$$dir ; fi ; \
4647132727Skan	 done
4648169699Skan	-rm -f stagefeedback/libgcc.a stagefeedback/libgcov.a stagefeedback/libgcc_eh.a
4649169699Skan	-rm -f stagefeedback/libgcc_s*$(SHLIB_EXT)
4650169699Skan	-rm -f stagefeedback/libunwind.a stagefeedback/libunwind*$(SHLIB_EXT)
4651169699Skan	-rm -f *.da
4652169699Skan	-mv $(STAGEMOVESTUFF) stagefeedback
4653169699Skan	-mv build/* stagefeedback/build
4654169699Skan	-cp -p $(STAGECOPYSTUFF) stagefeedback
4655132727Skan# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
4656132727Skan# dir will work properly.
4657132727Skan	-if [ -f as$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../as$(exeext) .) ; else true ; fi
4658132727Skan	-if [ -f ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../ld$(exeext) .) ; else true ; fi
4659132727Skan	-if [ -f collect-ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
4660132727Skan	-for dir in fixinc po testsuite $(SUBDIRS); \
4661132727Skan	 do \
4662132727Skan	   rm -f $$dir/*.da ; \
4663132727Skan	 done
4664132727Skan	-cp libgcc.a stagefeedback
4665132727Skan	-$(RANLIB_FOR_TARGET) stagefeedback/libgcc.a
4666132727Skan	-cp libgcov.a stagefeedback
4667132727Skan	-$(RANLIB_FOR_TARGET) stagefeedback/libgcov.a
4668132727Skan	-if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stagefeedback; \
4669132727Skan	   $(RANLIB_FOR_TARGET) stagefeedback/libgcc_eh.a; \
4670132727Skan	fi
4671132727Skan	-cp libgcc_s*$(SHLIB_EXT) stagefeedback
4672146906Skan	-cp libunwind.a libunwind*$(SHLIB_EXT) stagefeedback
4673132727Skan	-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
4674132727Skan	  cp stagefeedback/$${f} . ; \
4675132727Skan	else true; \
4676132727Skan	fi; done
4677132727Skanstagefeedback: force stagefeedback-start lang.stagefeedback
4678132727Skan
467918334Speter# Copy just the executable files from a particular stage into a subdirectory,
468018334Speter# and delete the object files.  Use this if you're just verifying a version
468118334Speter# that is pretty sure to work, and you are short of disk space.
468218334Speterrisky-stage1: stage1
468390081Sobrien	-$(MAKE) clean
468418334Speter
468518334Speterrisky-stage2: stage2
468690081Sobrien	-$(MAKE) clean
468718334Speter
468818334Speterrisky-stage3: stage3
468990081Sobrien	-$(MAKE) clean
469018334Speter
469118334Speterrisky-stage4: stage4
469290081Sobrien	-$(MAKE) clean
469318334Speter
469418334Speter#In GNU Make, ignore whether `stage*' exists.
469518334Speter.PHONY: stage1 stage2 stage3 stage4 clean maintainer-clean TAGS bootstrap
469618334Speter.PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4
4697132727Skan.PHONY: stagefeedback stageprofile
469818334Speter
4699132727Skan# -----------------------------------------------------
470090081Sobrien# Rules for generating translated message descriptions.
470190081Sobrien# Disabled by autoconf if the tools are not available.
4702132727Skan# -----------------------------------------------------
470390081Sobrien
470490081SobrienXGETTEXT = @XGETTEXT@
470590081SobrienGMSGFMT = @GMSGFMT@
470690081SobrienMSGMERGE = msgmerge
4707169699SkanCATALOGS = $(patsubst %,po/%,@CATALOGS@)
470890081Sobrien
4709117404Skan.PHONY: build- install- build-po install-po update-po
471090081Sobrien
471190081Sobrien# Dummy rules to deal with dependencies produced by use of
471290081Sobrien# "build-@POSUB@" and "install-@POSUB@" above, when NLS is disabled.
471390081Sobrienbuild-: ; @true
471490081Sobrieninstall-: ; @true
471590081Sobrien
471690081Sobrienbuild-po: $(CATALOGS)
471790081Sobrien
471890081Sobrien# This notation should be acceptable to all Make implementations used
471990081Sobrien# by people who are interested in updating .po files.
472090081Sobrienupdate-po: $(CATALOGS:.gmo=.pox)
472190081Sobrien
472290081Sobrien# N.B. We do not attempt to copy these into $(srcdir).  The snapshot
472390081Sobrien# script does that.
472490081Sobrien.po.gmo:
472590081Sobrien	-test -d po || mkdir po
472690081Sobrien	$(GMSGFMT) --statistics -o $@ $<
472790081Sobrien
472890081Sobrien# The new .po has to be gone over by hand, so we deposit it into
472990081Sobrien# build/po with a different extension.
4730169699Skan# If build/po/gcc.pot exists, use it (it was just created),
473190081Sobrien# else use the one in srcdir.
473290081Sobrien.po.pox:
473390081Sobrien	-test -d po || mkdir po
4734169699Skan	$(MSGMERGE) $< `if test -f po/gcc.pot; \
4735169699Skan			then echo po/gcc.pot; \
4736169699Skan			else echo $(srcdir)/po/gcc.pot; fi` -o $@
473790081Sobrien
473890081Sobrien# This rule has to look for .gmo modules in both srcdir and
473990081Sobrien# the cwd, and has to check that we actually have a catalog
474090081Sobrien# for each language, in case they weren't built or included
474190081Sobrien# with the distribution.
474290081Sobrieninstall-po:
4743169699Skan	$(mkinstalldirs) $(DESTDIR)$(datadir)
4744132727Skan	cats="$(CATALOGS)"; for cat in $$cats; do \
474590081Sobrien	  lang=`basename $$cat | sed 's/\.gmo$$//'`; \
474690081Sobrien	  if [ -f $$cat ]; then :; \
474790081Sobrien	  elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \
474890081Sobrien	  else continue; \
474990081Sobrien	  fi; \
475090081Sobrien	  dir=$(localedir)/$$lang/LC_MESSAGES; \
4751169699Skan	  echo $(mkinstalldirs) $(DESTDIR)$$dir; \
4752169699Skan	  $(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \
4753169699Skan	  echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
4754169699Skan	  $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
475590081Sobrien	done
475690081Sobrien
475790081Sobrien# Rule for regenerating the message template (gcc.pot).
475890081Sobrien# Instead of forcing everyone to edit POTFILES.in, which proved impractical,
475990081Sobrien# this rule has no dependencies and always regenerates gcc.pot.  This is
476090081Sobrien# relatively harmless since the .po files do not directly depend on it.
476190081Sobrien# Note that exgettext has an awk script embedded in it which requires a
476290081Sobrien# fairly modern (POSIX-compliant) awk.
476390081Sobrien# The .pot file is left in the build directory.
4764169699Skangcc.pot: po/gcc.pot
4765169699Skanpo/gcc.pot: force
476690081Sobrien	-test -d po || mkdir po
4767132727Skan	$(MAKE) srcextra
476890081Sobrien	AWK=$(AWK) $(SHELL) $(srcdir)/po/exgettext \
4769169699Skan		$(XGETTEXT) gcc $(srcdir)
4770