diff options
Diffstat (limited to 'contrib/gcc/Makefile.in')
-rw-r--r-- | contrib/gcc/Makefile.in | 5387 |
1 files changed, 2018 insertions, 3369 deletions
diff --git a/contrib/gcc/Makefile.in b/contrib/gcc/Makefile.in index 5afd30e..4b1634f 100644 --- a/contrib/gcc/Makefile.in +++ b/contrib/gcc/Makefile.in @@ -1,3457 +1,2106 @@ -# Makefile for GNU C compiler. -# Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 -# 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - -#This file is part of GCC. - -#GCC is free software; you can redistribute it and/or modify -#it under the terms of the GNU General Public License as published by -#the Free Software Foundation; either version 2, or (at your option) -#any later version. - -#GCC is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. - -#You should have received a copy of the GNU General Public License -#along with GCC; see the file COPYING. If not, write to -#the Free Software Foundation, 59 Temple Place - Suite 330, -#Boston MA 02111-1307, USA. - -# The targets for external use include: -# all, doc, proto, install, install-cross, install-cross-rest, -# uninstall, TAGS, mostlyclean, clean, distclean, maintainer-clean, -# stage1, stage2, stage3, stage4. - -# This is the default target. -all: - -# Suppress smart makes who think they know how to automake Yacc files -.y.c: - -# Directory where sources are, from where we are. -srcdir = @srcdir@ -VPATH = @srcdir@ - -# Pointer to the GCC Project website -website=http://gcc.gnu.org - -# Variables that exist for you to override. -# See below for how to change them for certain systems. - -# List of language subdirectories. -# This is overridden by configure. -SUBDIRS =@subdirs@ - -# Selection of languages to be made. -# This is overridden by configure. -CONFIG_LANGUAGES = @all_languages@ -LANGUAGES = c gcov$(exeext) $(CONFIG_LANGUAGES) - -# Selection of languages to be made during stage1 build. -# This is overridden by configure. -BOOT_LANGUAGES = c @all_boot_languages@ - -# Various ways of specifying flags for compilations: -# CFLAGS is for the user to override to, e.g., do a cross build with -O2. -# For recursive bootstrap builds CFLAGS is used to pass in STAGE1_CFLAGS -# or BOOT_CFLAGS -# STAGE1_CFLAGS is set by configure on some targets or passed from toplevel -# and sets the CFLAGS passed to stage1 of a bootstrap compilation. -# BOOT_CFLAGS is the value of CFLAGS to pass to the stage2, stage3 and stage4 -# bootstrap compilations. -# XCFLAGS is used for most compilations but not when using the GCC just built. -# TCFLAGS is used for compilations with the GCC just built. -XCFLAGS = -TCFLAGS = -CFLAGS = -g -STAGE1_CFLAGS = -g @stage1_cflags@ -BOOT_CFLAGS = -g -O2 - -# The warning flags are separate from BOOT_CFLAGS because people tend to -# override optimization flags and we'd like them to still have warnings -# turned on. These flags are also used to pass other stage dependent -# flags from configure. The user is free to explicitly turn these flags -# off if they wish. -# LOOSE_WARN are the warning flags to use when compiling something -# which is only compiled with gcc, such as libgcc and the frontends -# other than C. -# STRICT_WARN and STRICT2_WARN are the additional warning flags to -# apply to the back end and the C front end, which may be compiled -# with other compilers. This is partially controlled by configure in -# stage1, as not all versions of gcc understand -Wno-long-long. -LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -STRICT_WARN = -Wtraditional @strict1_warn@ -STRICT2_WARN = -Wtraditional -pedantic -Wno-long-long - -# This is how we control whether or not the additional warnings are applied. -.-warn = $(STRICT_WARN) -GCC_WARN_CFLAGS = $(LOOSE_WARN) $($(@D)-warn) - -# All warnings have to be shut off in stage1 if the compiler used then -# isn't gcc; configure determines that. WARN_CFLAGS will be either -# $(GCC_WARN_CFLAGS), or nothing. -WARN_CFLAGS = @warn_cflags@ - -# These exists to be overridden by the x-* and t-* files, respectively. -X_CFLAGS = -T_CFLAGS = - -X_CPPFLAGS = -T_CPPFLAGS = - -AWK = @AWK@ -CC = @CC@ -BISON = @BISON@ -BISONFLAGS = -FLEX = @FLEX@ -FLEXFLAGS = +# +# Makefile for directory with subdirs to build. +# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +# 1999, 2000, 2001 Free Software Foundation +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + +# Tell GNU make 3.79 not to run the top level in parallel. This +# prevents contention for $builddir/$target/config.cache, as well +# as minimizing scatter in file system caches. +NOTPARALLEL = .NOTPARALLEL +$(NOTPARALLEL): + +srcdir = . + +prefix = /usr/local +exec_prefix = $(prefix) + +bindir=${exec_prefix}/bin +sbindir=${exec_prefix}/sbin +libexecdir=${exec_prefix}/libexec +datadir=${prefix}/share +sysconfdir=${prefix}/etc +sharedstatedir=${prefix}/com +localstatedir=${prefix}/var +libdir=${exec_prefix}/lib +includedir=${prefix}/include +oldincludedir=/usr/include +infodir=${prefix}/info +mandir=${prefix}/man +gxx_include_dir=${includedir}/g++ + +tooldir = $(exec_prefix)/$(target_alias) +build_tooldir = $(exec_prefix)/$(target_alias) + +program_transform_name = + +man1dir = $(mandir)/man1 +man2dir = $(mandir)/man2 +man3dir = $(mandir)/man3 +man4dir = $(mandir)/man4 +man5dir = $(mandir)/man5 +man6dir = $(mandir)/man6 +man7dir = $(mandir)/man7 +man8dir = $(mandir)/man8 +man9dir = $(mandir)/man9 +infodir = $(prefix)/info +includedir = $(prefix)/include +# Directory in which the compiler finds executables, libraries, etc. +libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version) +GDB_NLM_DEPS = + +SHELL = /bin/sh + +# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a +# cygwin host. +INSTALL_PROGRAM_ARGS = + +INSTALL = $(SHELL) $$s/install-sh -c +INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS) +INSTALL_SCRIPT = $(INSTALL) +INSTALL_DATA = $(INSTALL) -m 644 + +INSTALL_DOSREL = install-dosrel-fake + +AS = as AR = ar AR_FLAGS = rc +CC = cc + +# Special variables passed down in EXTRA_GCC_FLAGS. They are defined +# here so that they can be overridden by Makefile fragments. +HOST_CC = $(CC_FOR_BUILD) +HOST_PREFIX = +HOST_PREFIX_1 = loser- + +# These flag values are normally overridden by the configure script. +CFLAGS = -g +CXXFLAGS = -g -O2 + +LDFLAGS = +LIBCFLAGS = $(CFLAGS) +CFLAGS_FOR_BUILD = $(CFLAGS) +# During gcc bootstrap, if we use some random cc for stage1 then +# CFLAGS will be just -g. We want to ensure that TARGET libraries +# (which we know are built with gcc) are built with optimizations so +# prepend -O2 when setting CFLAGS_FOR_TARGET. +CFLAGS_FOR_TARGET = -O2 $(CFLAGS) +LDFLAGS_FOR_TARGET = +LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) +PICFLAG = +PICFLAG_FOR_TARGET = + +CXX = c++ + +# Use -O2 to stress test the compiler. +LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates +CXXFLAGS_FOR_TARGET = $(CXXFLAGS) +LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates + DLLTOOL = dlltool -RANLIB = @RANLIB@ -SHELL = /bin/sh -# on sysV, define this as cp. -INSTALL = @INSTALL@ -# Some systems may be missing symbolic links, regular links, or both. -# Allow configure to check this and use "ln -s", "ln", or "cp" as appropriate. -LN=@LN@ -LN_S=@LN_S@ -# These permit overriding just for certain files. -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL@ -MAKEINFO = @MAKEINFO@ +WINDRES = windres + +NM = nm + +LD = ld + +BZIPPROG = bzip2 +MD5PROG = md5sum + +# These values are substituted by configure. +DEFAULT_YACC = yacc +DEFAULT_LEX = lex +DEFAULT_M4 = m4 + +BISON = `if [ -f $$r/bison/bison ] ; then \ + echo $$r/bison/bison -L $$s/bison/ ; \ + else \ + echo bison ; \ + fi` + +YACC = `if [ -f $$r/bison/bison ] ; then \ + echo $$r/bison/bison -y -L $$s/bison/ ; \ + elif [ -f $$r/byacc/byacc ] ; then \ + echo $$r/byacc/byacc ; \ + else \ + echo ${DEFAULT_YACC} ; \ + fi` + +LEX = `if [ -f $$r/flex/flex ] ; \ + then echo $$r/flex/flex ; \ + else echo ${DEFAULT_LEX} ; fi` + +M4 = `if [ -f $$r/m4/m4 ] ; \ + then echo $$r/m4/m4 ; \ + else echo ${DEFAULT_M4} ; fi` + +# For an installed makeinfo, we require it to be from texinfo 4 or +# higher, else we use the "missing" dummy. +MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \ + then echo $$r/texinfo/makeinfo/makeinfo ; \ + else if (makeinfo --version \ + | egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \ + then echo makeinfo; else echo $$s/missing makeinfo; fi; fi` + +# This just becomes part of the MAKEINFO definition passed down to +# sub-makes. It lets flags be given on the command line while still +# using the makeinfo from the object tree. MAKEINFOFLAGS = -TEXI2DVI = texi2dvi -TEXI2POD = perl $(srcdir)/../contrib/texi2pod.pl -POD2MAN = pod2man --center="GNU" --release="gcc-$(version)" -# For GNUmake: let us decide what gets passed to recursive makes. -MAKEOVERRIDES = -@SET_MAKE@ -# Some compilers can't handle cc -c blah.c -o foo/blah.o. -# In stage2 and beyond, we force this to "-o $@" since we know we're using gcc. -OUTPUT_OPTION = @OUTPUT_OPTION@ - -# Some versions of `touch' (such as the version on Solaris 2.8) -# do not correctly set the timestamp due to buggy versions of `utime' -# in the kernel. So, we use `echo' instead. -STAMP = echo timestamp > - -# This is where we get zlib from. zlibdir is -L../zlib and zlibinc is -# -I../zlib, unless we were configured with --with-system-zlib, in which -# case both are empty. -ZLIB = @zlibdir@ -lz -ZLIBINC = @zlibinc@ - -# Substitution type for target's getgroups 2nd arg. -TARGET_GETGROUPS_T = @TARGET_GETGROUPS_T@ - -# Target to use when installing include directory. Either -# install-headers-tar, install-headers-cpio or install-headers-cp. -INSTALL_HEADERS_DIR = @build_install_headers_dir@ - -# Header files that are made available under the same name -# to programs compiled with GCC. -USER_H = $(srcdir)/ginclude/stdarg.h $(srcdir)/ginclude/stddef.h \ - $(srcdir)/ginclude/varargs.h \ - $(srcdir)/ginclude/stdbool.h $(srcdir)/ginclude/iso646.h \ - $(EXTRA_HEADERS) - -# The GCC to use for compiling libgcc.a, enquire, and crt*.o. -# Usually the one we just built. -# Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS). -GCC_FOR_TARGET = ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include - -# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET. -# It omits XCFLAGS, and specifies -B./. -# It also specifies -isystem ./include to find, e.g., stddef.h. -GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -isystem ./include $(TCFLAGS) - -# Sed command to transform gcc to installed name. Overwritten by configure. -program_transform_name = @program_transform_name@ -program_transform_cross_name = s,^,$(target_alias)-, - -build_canonical = @build_canonical@ -host_canonical = @host_canonical@ - -# Tools to use when building a cross-compiler. -# These are used because `configure' appends `cross-make' -# to the makefile when making a cross-compiler. - -# Use the tools from the build tree, if they are available. - -# objdir is set by configure. -objdir = @objdir@ -AR_FOR_TARGET = ` \ - if [ -f $(objdir)/../binutils/ar ] ; then \ - echo $(objdir)/../binutils/ar ; \ +EXPECT = `if [ -f $$r/expect/expect ] ; \ + then echo $$r/expect/expect ; \ + else echo expect ; fi` + +RUNTEST = `if [ -f $$s/dejagnu/runtest ] ; \ + then echo $$s/dejagnu/runtest ; \ + else echo runtest ; fi` + + +# compilers to use to create programs which must be run in the build +# environment. +CC_FOR_BUILD = $(CC) +CXX_FOR_BUILD = $(CXX) + +SUBDIRS = "this is set via configure, don't edit this" +OTHERS = + +# This is set by the configure script to the list of directories which +# should be built using the target tools. +TARGET_CONFIGDIRS = libiberty libgloss $(SPECIAL_LIBS) newlib librx winsup opcodes bsp libstub cygmon libf2c libobjc + +# Target libraries are put under this directory: +# Changed by configure to $(target_alias) if cross. +TARGET_SUBDIR = . + +BUILD_CONFIGDIRS = libiberty +BUILD_SUBDIR = . + +# This is set by the configure script to the arguments to use when configuring +# directories built for the target. +TARGET_CONFIGARGS = + +# This is set by the configure script to the arguments to use when configuring +# directories built for the build system. +BUILD_CONFIGARGS = + +# This is set by configure to REALLY_SET_LIB_PATH if --enable-shared +# was used. +SET_LIB_PATH = + +# This is the name of the environment variable used for the path to +# the libraries. This may be changed by configure.in. +RPATH_ENVVAR = LD_LIBRARY_PATH + +# This is the list of directories that may be needed in RPATH_ENVVAR +# so that programs built for the host machine work. +HOST_LIB_PATH = $$r/bfd:$$r/opcodes + +# This is the list of directories that may be needed in RPATH_ENVVAR +# so that prorgams built for the target machine work. +TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs: + +# configure.in sets SET_LIB_PATH to this if --enable-shared was used. +# Some platforms don't like blank entries, so we remove duplicate, +# leading and trailing colons. +REALLY_SET_LIB_PATH = \ + $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); + +ALL = all.normal +INSTALL_TARGET = installdirs \ + install-gcc \ + $(INSTALL_MODULES) \ + $(INSTALL_TARGET_MODULES) \ + $(INSTALL_X11_MODULES) \ + $(INSTALL_DOSREL) + +INSTALL_TARGET_CROSS = installdirs \ + install-gcc-cross \ + $(INSTALL_MODULES) \ + $(INSTALL_TARGET_MODULES) \ + $(INSTALL_X11_MODULES) \ + $(INSTALL_DOSREL) + +# Should be substed by configure.in +FLAGS_FOR_TARGET = +CC_FOR_TARGET = +CXX_FOR_TARGET = +CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = +GCJ_FOR_TARGET = + +# If GCC_FOR_TARGET is not overriden on the command line, then this +# variable is passed down to the gcc Makefile, where it is used to +# build libgcc2.a. We define it here so that it can itself be +# overridden on the command line. +GCC_FOR_TARGET = $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) + +AS_FOR_TARGET = ` \ + if [ -f $$r/gas/as-new ] ; then \ + echo $$r/gas/as-new ; \ + elif [ -f $$r/gcc/xgcc ]; then \ + $(CC_FOR_TARGET) -print-prog-name=as ; \ else \ - if [ "$(host_canonical)" = "$(target)" ] ; then \ - echo ar; \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(AS); \ else \ - t='$(program_transform_cross_name)'; echo ar | sed -e $$t ; \ + t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \ fi; \ fi` -AR_FLAGS_FOR_TARGET = -AR_CREATE_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) rc -AR_EXTRACT_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) x -RANLIB_FOR_TARGET = ` \ - if [ -f $(objdir)/../binutils/ranlib ] ; then \ - echo $(objdir)/../binutils/ranlib ; \ + +LD_FOR_TARGET = ` \ + if [ -f $$r/ld/ld-new ] ; then \ + echo $$r/ld/ld-new ; \ + elif [ -f $$r/gcc/xgcc ]; then \ + $(CC_FOR_TARGET) -print-prog-name=ld ; \ else \ - if [ "$(host_canonical)" = "$(target)" ] ; then \ - echo ranlib; \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(LD); \ else \ - t='$(program_transform_cross_name)'; echo ranlib | sed -e $$t ; \ + t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \ fi; \ fi` -RANLIB_TEST_FOR_TARGET = \ - [ -f $(RANLIB_FOR_TARGET) ] \ - || ( [ "$(host_canonical)" = "$(target)" ] \ - && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ) -NM_FOR_TARGET = ` \ - if [ -f ./nm ] ; then \ - echo ./nm ; \ - elif [ -f $(objdir)/../binutils/nm-new ] ; then \ - echo $(objdir)/../binutils/nm-new ; \ + +DLLTOOL_FOR_TARGET = ` \ + if [ -f $$r/binutils/dlltool ] ; then \ + echo $$r/binutils/dlltool ; \ else \ - if [ "$(host_canonical)" = "$(target)" ] ; then \ - echo nm; \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(DLLTOOL); \ else \ - t='$(program_transform_cross_name)'; echo nm | sed -e $$t ; \ + t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \ fi; \ fi` -# Where to find some libiberty headers. -HASHTAB_H = $(srcdir)/../include/hashtab.h -OBSTACK_H = $(srcdir)/../include/obstack.h -SPLAY_TREE_H= $(srcdir)/../include/splay-tree.h -FIBHEAP_H = $(srcdir)/../include/fibheap.h - -# Default native SYSTEM_HEADER_DIR, to be overridden by targets. -NATIVE_SYSTEM_HEADER_DIR = /usr/include -# Default cross SYSTEM_HEADER_DIR, to be overridden by targets. -CROSS_SYSTEM_HEADER_DIR = $(build_tooldir)/sys-include - -# autoconf sets SYSTEM_HEADER_DIR to one of the above. -SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@ - -# Control whether to run fixproto and fixincludes. -STMP_FIXPROTO = @STMP_FIXPROTO@ -STMP_FIXINC = @STMP_FIXINC@ - -# Test to see whether <limits.h> exists in the system header files. -LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ] - -target=@target@ -target_alias=@target_alias@ -xmake_file=@dep_host_xmake_file@ -tmake_file=@dep_tmake_file@ -out_file=$(srcdir)/config/@out_file@ -out_object_file=@out_object_file@ -md_file=$(srcdir)/config/@md_file@ -tm_p_file_list=@tm_p_file_list@ -tm_p_file=@tm_p_file@ -build_xm_file_list=@build_xm_file_list@ -build_xm_file=@build_xm_file@ -build_xm_defines=@build_xm_defines@ -host_xm_file_list=@host_xm_file_list@ -host_xm_file=@host_xm_file@ -host_xm_defines=@host_xm_defines@ -xm_file=@xm_file@ -xm_defines=@xm_defines@ -lang_specs_files=@lang_specs_files@ -lang_options_files=@lang_options_files@ -lang_tree_files=@lang_tree_files@ -target_cpu_default=@target_cpu_default@ -GCC_THREAD_FILE=@thread_file@ -OBJC_BOEHM_GC=@objc_boehm_gc@ -GTHREAD_FLAGS=@gthread_flags@ -# Be prepared for gcc2 merges. -gcc_version=@gcc_version@ -gcc_version_trigger=@gcc_version_trigger@ -version=$(gcc_version) -mainversion=`grep version_string $(srcdir)/version.c | sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/'` - -# Common prefix for installation directories. -# NOTE: This directory must exist when you start installation. -prefix = @prefix@ -# Directory in which to put localized header files. On the systems with -# gcc as the native cc, `local_prefix' may not be `prefix' which is -# `/usr'. -# NOTE: local_prefix *should not* default from prefix. -local_prefix = @local_prefix@ -# Directory in which to put host dependent programs and libraries -exec_prefix = @exec_prefix@ -# Directory in which to put the executable for the command `gcc' -bindir = @bindir@ -# Directory in which to put the directories used by the compiler. -libdir = @libdir@ -# Directory in which the compiler finds executables, libraries, etc. -libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(version) -# Used to produce a relative $(gcc_tooldir) in gcc.o -unlibsubdir = ../../.. -# Directory in which to find other cross-compilation tools and headers. -dollar = @dollar@ -# Used in install-cross. -gcc_tooldir = @gcc_tooldir@ -# Used to install the shared libgcc. -slibdir = @slibdir@ -# Since gcc_tooldir does not exist at build-time, use -B$(build_tooldir)/bin/ -build_tooldir = $(exec_prefix)/$(target_alias) -# Directory in which the compiler finds target-independent g++ includes. -gcc_gxx_include_dir = @gcc_gxx_include_dir@ -# Directory to search for site-specific includes. -local_includedir = $(local_prefix)/include -includedir = $(prefix)/include -# where the info files go -infodir = @infodir@ -# Where cpp should go besides $prefix/bin if necessary -cpp_install_dir = @cpp_install_dir@ -# where the locale files go -datadir = @datadir@ -localedir = $(datadir)/locale -# Extension (if any) to put in installed man-page filename. -man1ext = .1 -man7ext = .7 -objext = .o -exeext = @host_exeext@ -build_exeext = @build_exeext@ - -# Directory in which to put man pages. -mandir = @mandir@ -man1dir = $(mandir)/man1 -man7dir = $(mandir)/man7 -# Dir for temp files. -tmpdir = /tmp - -# Top build directory, relative to here. -top_builddir = . - -# Whether we were configured with NLS. -USE_NLS = @USE_NLS@ - -# Internationalization library. -INTLLIBS = @INTLLIBS@ -INTLDEPS = @INTLDEPS@ - -# Character encoding conversion library. -LIBICONV = @LIBICONV@ - -# List of internationalization subdirectories. -INTL_SUBDIRS = intl - -# The GC method to be used on this system. -GGC=@GGC@.o - -# If a supplementary library is being used for the GC. -GGC_LIB= - -# libgcc.a may be built directly or via stmp-multilib, -# and installed likewise. Overridden by t-fragment. -LIBGCC = libgcc.a -INSTALL_LIBGCC = install-libgcc +WINDRES_FOR_TARGET = ` \ + if [ -f $$r/binutils/windres ] ; then \ + echo $$r/binutils/windres ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(WINDRES); \ + else \ + t='$(program_transform_name)'; echo windres | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` -# Options to use when compiling libgcc2.a. -# -LIBGCC2_DEBUG_CFLAGS = -g -LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@ +AR_FOR_TARGET = ` \ + if [ -f $$r/binutils/ar ] ; then \ + echo $$r/binutils/ar ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(AR); \ + else \ + t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` -# Additional options to use when compiling libgcc2.a. -# Some targets override this to -isystem include -LIBGCC2_INCLUDES = +RANLIB_FOR_TARGET = ` \ + if [ -f $$r/binutils/ranlib ] ; then \ + echo $$r/binutils/ranlib ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ x'$(RANLIB)' != x ]; then \ + echo $(RANLIB); \ + else \ + echo ranlib; \ + fi; \ + else \ + t='$(program_transform_name)'; echo ranlib | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` -# Additional target-dependent options for compiling libgcc2.a. -TARGET_LIBGCC2_CFLAGS = - -# Options to use when compiling crtbegin/end. -CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \ - -finhibit-size-directive -fno-inline-functions -fno-exceptions - -# Additional sources to handle exceptions; overridden on ia64. -LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ - $(srcdir)/unwind-sjlj.c -LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h - -# nm flags to list global symbols in libgcc object files. -SHLIB_NM_FLAGS = -pg - -# List of extra executables that should be compiled for this target machine -# that are used for compiling from source code to object code. -# The rules for compiling them should be in the t-* file for the machine. -EXTRA_PASSES =@extra_passes@ - -# Like EXTRA_PASSES, but these are used when linking. -EXTRA_PROGRAMS = @extra_programs@ - -# List of extra object files that should be compiled for this target machine. -# The rules for compiling them should be in the t-* file for the machine. -EXTRA_PARTS = @extra_parts@ - -# List of extra object files that should be compiled and linked with -# compiler proper (cc1, cc1obj, cc1plus). -EXTRA_OBJS = @extra_objs@ - -# List of extra object files that should be compiled and linked with -# the gcc driver. -EXTRA_GCC_OBJS =@host_extra_gcc_objs@ - -# List of additional header files to install. -# Often this is edited directly by `configure'. -EXTRA_HEADERS =@extra_headers_list@ - -# It is convenient for configure to add the assignment at the beginning, -# so don't override it here. -USE_COLLECT2 = collect2$(exeext) - -# List of extra C and assembler files to add to static and shared libgcc2. -# Assembler files should have names ending in `.asm'. -LIB2FUNCS_EXTRA = - -# List of extra C and assembler files to add to static libgcc2. -# Assembler files should have names ending in `.asm'. -LIB2FUNCS_STATIC_EXTRA = - -# Handle cpp installation. -INSTALL_CPP= -UNINSTALL_CPP= - -# We do not try to build float.h anymore. Let configure select the -# appropriate pre-built float.h file for the target. -FLOAT_H=@float_h_file@ - -# Program to convert libraries. -LIBCONVERT = - -# Control whether header files are installed. -INSTALL_HEADERS=install-headers - -# Control whether Info documentation is built and installed. -BUILD_INFO = @BUILD_INFO@ - -# Control whether manpages generated by texi2pod.pl can be rebuilt. -GENERATED_MANPAGES = @GENERATED_MANPAGES@ - -# Additional directories of header files to run fixincludes on. -# These should be directories searched automatically by default -# just as /usr/include is. -# *Do not* use this for directories that happen to contain -# header files, but are not searched automatically by default. -# On most systems, this is empty. -OTHER_FIXINCLUDES_DIRS= - -# A list of all the language-specific executables. -# This is overridden by configure. -COMPILERS = cc1$(exeext) @all_compilers@ - -# List of things which should already be built whenever we try to use xgcc -# to compile anything (without linking). -GCC_PASSES=xgcc$(exeext) cc1$(exeext) cpp0$(exeext) specs $(EXTRA_PASSES) - -# List of things which should already be built whenever we try to use xgcc -# to link anything. -GCC_PARTS=$(GCC_PASSES) $(LIBGCC) $(EXTRA_PROGRAMS) $(USE_COLLECT2) $(EXTRA_PARTS) - -# Directory to link to, when using the target `maketest'. -DIR = ../gcc - -# Flags to use when cross-building GCC. -# Prefix to apply to names of object files when using them -# to run on the machine we are compiling on. -HOST_PREFIX = @HOST_PREFIX@ -# Prefix to apply to names of object files when compiling them -# to run on the machine we are compiling on. -# The default for this variable is chosen to keep these rules -# out of the way of the other rules for compiling the same source files. -HOST_PREFIX_1 = @HOST_PREFIX_1@ -# Native compiler for the build machine and its switches. -HOST_CC = @HOST_CC@ -HOST_CFLAGS= @HOST_CFLAGS@ -DGENERATOR_FILE - -# Native linker and preprocessor flags. For x-fragment overrides. -HOST_LDFLAGS=$(LDFLAGS) -HOST_CPPFLAGS=$(ALL_CPPFLAGS) - -# Actual name to use when installing a native compiler. -GCC_INSTALL_NAME = `echo gcc|sed '$(program_transform_name)'` -GCC_TARGET_INSTALL_NAME = $(target_alias)-`echo gcc|sed '$(program_transform_name)'` -CPP_INSTALL_NAME = `echo cpp|sed '$(program_transform_name)'` -PROTOIZE_INSTALL_NAME = `echo protoize|sed '$(program_transform_name)'` -UNPROTOIZE_INSTALL_NAME = `echo unprotoize|sed '$(program_transform_name)'` -GCOV_INSTALL_NAME = `echo gcov|sed '$(program_transform_name)'` -GCCBUG_INSTALL_NAME = `echo gccbug|sed '$(program_transform_name)'` - -# Actual name to use when installing a cross-compiler. -GCC_CROSS_NAME = `echo gcc|sed '$(program_transform_cross_name)'` -CPP_CROSS_NAME = `echo cpp|sed '$(program_transform_cross_name)'` -PROTOIZE_CROSS_NAME = `echo protoize|sed '$(program_transform_cross_name)'` -UNPROTOIZE_CROSS_NAME = `echo unprotoize|sed '$(program_transform_cross_name)'` - -# Set by autoconf to "all.internal" for a native build, or -# "all.cross" to build a cross compiler. -ALL = @ALL@ - -# Setup the testing framework, if you have one -EXPECT = `if [ -f $${rootme}/../expect/expect ] ; then \ - echo $${rootme}/../expect/expect ; \ - else echo expect ; fi` - -RUNTEST = `if [ -f $${srcdir}/../dejagnu/runtest ] ; then \ - echo $${srcdir}/../dejagnu/runtest ; \ - else echo runtest; fi` -RUNTESTFLAGS = - -# Extra symbols for fixproto to define when parsing headers. -FIXPROTO_DEFINES = - -# Extra flags to use when compiling crt{begin,end}.o. -CRTSTUFF_T_CFLAGS = - -# Extra flags to use when compiling [m]crt0.o. -CRT0STUFF_T_CFLAGS = - -# "t" or nothing, for building multilibbed versions of, say, crtbegin.o. -T = - -# Should T contain a `=', libgcc.mk will make T_TARGET, setting -# $(T_TARGET) to the name of the actual target filename. -T_TARGET = -T_TARGET : $(T_TARGET) - -# End of variables for you to override. - -# Definition of `all' is here so that new rules inserted by sed -# do not specify the default target. -# The real definition is under `all.internal' (for native compilers) -# or `all.cross' (for cross compilers). -all: all.indirect - -# This tells GNU Make version 3 not to put all variables in the environment. -.NOEXPORT: +NM_FOR_TARGET = ` \ + if [ -f $$r/binutils/nm-new ] ; then \ + echo $$r/binutils/nm-new ; \ + elif [ -f $$r/gcc/xgcc ]; then \ + $(CC_FOR_TARGET) -print-prog-name=nm ; \ + else \ + if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + echo $(NM); \ + else \ + t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \ + fi; \ + fi` -# GCONFIG_H lists the config files that the generator files depend on, while -# CONFIG_H lists the the ones ordinary gcc files depend on, which includes -# several files generated by those generators. -GCONFIG_H = config.h $(host_xm_file_list) -HCONFIG_H = hconfig.h $(build_xm_file_list) -CONFIG_H = $(GCONFIG_H) insn-constants.h insn-flags.h -TCONFIG_H = tconfig.h $(xm_file_list) -TARGET_H = target.h -HOOKS_H = hooks.h -LANGHOOKS_DEF_H = langhooks.h $(HOOKS_H) -TARGET_DEF_H = target-def.h $(HOOKS_H) -TM_P_H = tm_p.h $(tm_p_file_list) tm-preds.h - -MACHMODE_H = machmode.h machmode.def -RTL_BASE_H = rtl.h rtl.def $(MACHMODE_H) -RTL_H = $(RTL_BASE_H) genrtl.h -PARAMS_H = params.h params.def -TREE_H = tree.h real.h tree.def $(MACHMODE_H) tree-check.h version.h builtins.def -BASIC_BLOCK_H = basic-block.h bitmap.h sbitmap.h varray.h -DEMANGLE_H = $(srcdir)/../include/demangle.h -RECOG_H = recog.h -EXPR_H = expr.h -OPTABS_H = optabs.h insn-codes.h -REGS_H = regs.h varray.h $(MACHMODE_H) -INTEGRATE_H = integrate.h varray.h -LOOP_H = loop.h varray.h bitmap.h -GCC_H = gcc.h version.h -GGC_H = ggc.h varray.h -TIMEVAR_H = timevar.h timevar.def -INSN_ATTR_H = insn-attr.h $(srcdir)/insn-addr.h $(srcdir)/varray.h -C_COMMON_H = c-common.h $(SPLAY_TREE_H) -C_TREE_H = c-tree.h $(C_COMMON_H) -SYSTEM_H = system.h hwint.h $(srcdir)/../include/libiberty.h -PREDICT_H = predict.h predict.def -CPPLIB_H = cpplib.h line-map.h - -# sed inserts variable overrides after the following line. -####target overrides -@target_overrides@ - -####host overrides -@host_overrides@ -# -# Now figure out from those variables how to compile and link. - -all.indirect: $(ALL) - -# IN_GCC distinguishes between code compiled into GCC itself and other -# programs built during a bootstrap. -# autoconf inserts -DCROSS_COMPILE if we are building a cross compiler. -INTERNAL_CFLAGS = -DIN_GCC @CROSS@ - -# This is the variable actually used when we compile. -# If you change this line, you probably also need to change the definition -# of HOST_CFLAGS in build-make to match. -ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) \ - $(CFLAGS) $(WARN_CFLAGS) $(XCFLAGS) @DEFS@ - -# Likewise. -ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS) - -# Build and host support libraries. FORBUILD is either -# .. or ../$(build_alias) depending on whether host != build. -LIBIBERTY = ../libiberty/libiberty.a -BUILD_LIBIBERTY = @FORBUILD@/libiberty/libiberty.a - -# Dependencies on the intl and portability libraries. -LIBDEPS= $(INTLDEPS) $(LIBIBERTY) - -# Likewise, for use in the tools that must run on this machine -# even if we are cross-building GCC. -HOST_LIBDEPS= $(BUILD_LIBIBERTY) - -# How to link with both our special library facilities -# and the system's installed libraries. -LIBS = $(INTLLIBS) @LIBS@ $(LIBIBERTY) - -# Likewise, for use in the tools that must run on this machine -# even if we are cross-building GCC. -HOST_LIBS = $(BUILD_LIBIBERTY) - -HOST_RTL = $(HOST_PREFIX)rtl.o read-rtl.o $(HOST_PREFIX)bitmap.o \ - $(HOST_PREFIX)ggc-none.o gensupport.o - -HOST_PRINT = $(HOST_PREFIX)print-rtl.o -HOST_ERRORS = $(HOST_PREFIX)errors.o - -# Specify the directories to be searched for header files. -# Both . and srcdir are used, in that order, -# so that *config.h will be found in the compilation -# subdirectory rather than in the source directory. -# -I$(@D) and -I$(srcdir)/$(@D) cause the subdirectory of the file -# currently being compiled, in both source trees, to be examined as well. -INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ - -I$(srcdir)/config -I$(srcdir)/../include - -# Always use -I$(srcdir)/config when compiling. -.c.o: - $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) - -# This tells GNU make version 3 not to export all the variables -# defined in this file into the environment. -.NOEXPORT: -# -# Support for additional languages (other than c and objc). -# ??? objc can be supported this way too (leave for later). - -# These next lines are overridden by configure. -LANG_MAKEFILES = @all_lang_makefiles@ -LANG_STAGESTUFF = @all_stagestuff@ - -# Flags to pass to recursive makes. -# CC is set by configure. Hosts without symlinks need special handling -# because we need CC="stage1/xgcc -Bstage1/" to work in the language -# subdirectories. -# ??? The choices here will need some experimenting with. -ORDINARY_FLAGS_TO_PASS = \ - "AR_FLAGS_FOR_TARGET=$(AR_FLAGS_FOR_TARGET)" \ - "AR_CREATE_FOR_TARGET=$(AR_CREATE_FOR_TARGET)" \ - "AR_EXTRACT_FOR_TARGET=$(AR_EXTRACT_FOR_TARGET)" \ +# The first rule in the file had better be this one. Don't put any above it. +# This lives here to allow makefile fragments to contain dependencies. +all: all.normal +.PHONY: all + +# These can be overridden by config/mt-*. +# The _TARGET_ is because they're specified in mt-foo. +# The _HOST_ is because they're programs that run on the host. +EXTRA_TARGET_HOST_ALL_MODULES = +EXTRA_TARGET_HOST_INSTALL_MODULES = +EXTRA_TARGET_HOST_CHECK_MODULES = + +#### host and target specific makefile fragments come in here. +### + +# Flags to pass down to all sub-makes. +# Please keep these in alphabetical order. +BASE_FLAGS_TO_PASS = \ + "AR_FLAGS=$(AR_FLAGS)" \ "AR_FOR_TARGET=$(AR_FOR_TARGET)" \ + "AS_FOR_TARGET=$(AS_FOR_TARGET)" \ "BISON=$(BISON)" \ - "BISONFLAGS=$(BISONFLAGS)" \ - "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \ - "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ + "CFLAGS=$(CFLAGS)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \ + "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \ + "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ + "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ "LDFLAGS=$(LDFLAGS)" \ - "FLEX=$(FLEX)" \ - "FLEXFLAGS=$(FLEXFLAGS)" \ - "LN=$(LN)" \ - "LN_S=$(LN_S)" \ - "MAKEINFO=$(MAKEINFO)" \ - "MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \ - "MAKEOVERRIDES=" \ + "LEX=$(LEX)" \ + "LD_FOR_TARGET=$(LD_FOR_TARGET)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "LIBCXXFLAGS=$(LIBCXXFLAGS)" \ + "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \ + "M4=$(M4)" \ + "MAKE=$(MAKE)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ + "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \ - "RANLIB_TEST_FOR_TARGET=$(RANLIB_TEST_FOR_TARGET)" \ + "RPATH_ENVVAR=$(RPATH_ENVVAR)" \ "SHELL=$(SHELL)" \ - "exeext=$(exeext)" \ - "build_exeext=$(build_exeext)" \ - "objext=$(objext)" \ + "EXPECT=$(EXPECT)" \ + "RUNTEST=$(RUNTEST)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ + "TARGET_SUBDIR=$(TARGET_SUBDIR)" \ + "WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \ + "YACC=$(YACC)" \ + "bindir=$(bindir)" \ + "datadir=$(datadir)" \ "exec_prefix=$(exec_prefix)" \ + "includedir=$(includedir)" \ + "infodir=$(infodir)" \ + "libdir=$(libdir)" \ + "libexecdir=$(libexecdir)" \ + "lispdir=$(lispdir)" \ + "libstdcxx_incdir=$(libstdcxx_incdir)" \ + "libsubdir=$(libsubdir)" \ + "localstatedir=$(localstatedir)" \ + "mandir=$(mandir)" \ + "oldincludedir=$(oldincludedir)" \ "prefix=$(prefix)" \ - "local_prefix=$(local_prefix)" \ - "gxx_include_dir=$(gcc_gxx_include_dir)" \ + "sbindir=$(sbindir)" \ + "sharedstatedir=$(sharedstatedir)" \ + "sysconfdir=$(sysconfdir)" \ + "tooldir=$(tooldir)" \ "build_tooldir=$(build_tooldir)" \ - "gcc_tooldir=$(gcc_tooldir)" \ - "bindir=$(bindir)" \ - "libsubdir=$(libsubdir)" \ - "datadir=$(datadir)" \ - "localedir=$(localedir)" -FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) "CC=@cc_set_by_configure@" \ - "STAGE_PREFIX=@stage_prefix_set_by_configure@" -PREPEND_DOTDOT_TO_RELATIVE_PATHS = sed \ - -e 's|^ *[^ /][^ /]*/|%&|' \ - -e 's| -B| -B%|g' \ - -e 's|% *[^- /]|%&|g' \ - -e 's|%% *|../|g' \ - -e 's|%||g' -SUBDIR_FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) \ - "CC=`echo @quoted_cc_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`" \ - "STAGE_PREFIX=`echo @quoted_stage_prefix_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`" -# -# Lists of files for various purposes. - -# Target specific, C specific object file -C_TARGET_OBJS=@c_target_objs@ - -# Target specific, C++ specific object file -CXX_TARGET_OBJS=@cxx_target_objs@ - -# Language-specific object files for C and Objective C. -C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \ - c-convert.o c-aux-info.o c-common.o c-format.o c-semantics.o \ - c-objc-common.o libcpp.a $(C_TARGET_OBJS) - -# Language-specific object files for C. -C_OBJS = c-parse.o c-lang.o $(C_AND_OBJC_OBJS) - -# Language-independent object files. - -OBJS = alias.o bb-reorder.o bitmap.o builtins.o caller-save.o calls.o \ - cfg.o cfganal.o cfgbuild.o cfgcleanup.o cfglayout.o cfgloop.o cfgrtl.o \ - combine.o conflict.o convert.o cse.o cselib.o dbxout.o debug.o dependence.o \ - df.o diagnostic.o doloop.o dominance.o dwarf2asm.o dwarf2out.o dwarfout.o \ - emit-rtl.o except.o explow.o expmed.o expr.o final.o flow.o \ - fold-const.o function.o gcse.o genrtl.o ggc-common.o global.o graph.o \ - haifa-sched.o hash.o hashtable.o hooks.o ifcvt.o insn-attrtab.o insn-emit.o \ - insn-extract.o insn-opinit.o insn-output.o insn-peep.o insn-recog.o \ - integrate.o intl.o jump.o langhooks.o lcm.o lists.o local-alloc.o \ - loop.o mbchar.o optabs.o params.o predict.o print-rtl.o print-tree.o \ - profile.o real.o recog.o reg-stack.o regclass.o regmove.o regrename.o \ - reload.o reload1.o reorg.o resource.o rtl.o rtlanal.o rtl-error.o \ - sbitmap.o sched-deps.o sched-ebb.o sched-rgn.o sched-vis.o sdbout.o \ - sibcall.o simplify-rtx.o ssa.o ssa-ccp.o ssa-dce.o stmt.o \ - stor-layout.o stringpool.o timevar.o toplev.o tree.o tree-dump.o \ - tree-inline.o unroll.o varasm.o varray.o version.o vmsdbgout.o xcoffout.o \ - $(GGC) $(out_object_file) $(EXTRA_OBJS) - -BACKEND = main.o libbackend.a - -# GEN files are listed separately, so they can be built before doing parallel -# makes for cc1 or cc1plus. Otherwise sequent parallel make attempts to load -# them before rtl.o is compiled. -GEN= genemit$(build_exeext) genoutput$(build_exeext) genrecog$(build_exeext) \ - genextract$(build_exeext) genflags$(build_exeext) gencodes$(build_exeext) \ - genconfig$(build_exeext) genpeep$(build_exeext) gengenrtl$(build_exeext) \ - gencheck$(build_exeext) genpreds$(build_exeext) genconstants$(build_exeext) - -# Files to be copied away after each stage in building. -STAGESTUFF = *$(objext) insn-flags.h insn-config.h insn-codes.h \ - insn-output.c insn-recog.c insn-emit.c insn-extract.c insn-peep.c \ - insn-attr.h insn-attrtab.c insn-opinit.c insn-constants.h tm-preds.h \ - tree-check.h \ - s-flags s-config s-codes s-mlib s-under s-genrtl \ - s-output s-recog s-emit s-extract s-peep s-check \ - s-attr s-attrtab s-opinit s-preds s-constants s-crt0 \ - genemit$(build_exeext) genoutput$(build_exeext) genrecog$(build_exeext) \ - genextract$(build_exeext) genflags$(build_exeext) gencodes$(build_exeext) \ - genconfig$(build_exeext) genpeep$(build_exeext) genattrtab$(build_exeext) \ - genattr$(build_exeext) genopinit$(build_exeext) gengenrtl$(build_exeext) \ - gencheck$(build_exeext) genpreds$(build_exeext) genconstants$(build_exeext) \ - genrtl.c genrtl.h \ - xgcc$(exeext) cpp$(exeext) cc1$(exeext) cpp0$(exeext) $(EXTRA_PASSES) \ - $(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross$(exeext) cc1obj$(exeext) \ - enquire$(exeext) protoize$(exeext) unprotoize$(exeext) \ - specs collect2$(exeext) $(USE_COLLECT2) underscore.c tradcpp0$(exeext) \ - gcov$(exeext) *.[0-9][0-9].* *.[si] libcpp.a libbackend.a libgcc.mk \ - $(LANG_STAGESTUFF) - -# Library members defined in libgcc2.c. -# Variable length limited to 255 charactes when passed to a shell script. -LIB2FUNCS_1 = _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _clz \ - _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi \ - _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi - -LIB2FUNCS_2 = _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf \ - _clear_cache _trampoline __main _exit _absvsi2 _absvdi2 _addvsi3 \ - _addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 _ctors - -# Defined in libgcc2.c, included only in the static library. -LIB2FUNCS_ST = _eprintf _bb __gcc_bcmp - -FPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \ - _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \ - _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \ - _sf_to_df _thenan_sf _sf_to_usi _usi_to_sf - -DPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \ - _fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \ - _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \ - _df_to_sf _thenan_df _df_to_usi _usi_to_df - -# These might cause a divide overflow trap and so are compiled with -# unwinder info. -LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4 - -# -# Language makefile fragments. - -# The following targets define the interface between us and the languages. + "gxx_include_dir=$(gxx_include_dir)" \ + "gcc_version=$(gcc_version)" \ + "gcc_version_trigger=$(gcc_version_trigger)" \ + "target_alias=$(target_alias)" + +# For any flags above that may contain shell code that varies from one +# target library to another. When doing recursive invocations of the +# top-level Makefile, we don't want the outer make to evaluate them, +# so we pass these variables down unchanged. They must not contain +# single nor double quotes. +RECURSE_FLAGS = \ + CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' + +# Flags to pass down to most sub-makes, in which we're building with +# the host environment. +# If any variables are added here, they must be added to do-*, below. +EXTRA_HOST_FLAGS = \ + 'AR=$(AR)' \ + 'AS=$(AS)' \ + 'CC=$(CC)' \ + 'CXX=$(CXX)' \ + 'DLLTOOL=$(DLLTOOL)' \ + 'LD=$(LD)' \ + 'NM=$(NM)' \ + "`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \ + 'WINDRES=$(WINDRES)' + +FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) + +# Flags that are concerned with the location of the X11 include files +# and library files +# +# NOTE: until the top-level is getting the values via autoconf, it only +# causes problems to have this top-level Makefile overriding the autoconf-set +# values in child directories. Only variables that don't conflict with +# autoconf'ed ones should be passed by X11_FLAGS_TO_PASS for now. # -# all.cross, start.encap, rest.encap, -# info, dvi, -# install-normal, install-common, install-info, install-man, -# uninstall, -# mostlyclean, clean, distclean, extraclean, maintainer-clean, -# stage1, stage2, stage3, stage4 +X11_FLAGS_TO_PASS = \ + 'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \ + 'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)' + +# Flags to pass down to makes which are built with the target environment. +# The double $ decreases the length of the command line; the variables +# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. +# If any variables are added here, they must be added to do-*, below. +EXTRA_TARGET_FLAGS = \ + 'AR=$$(AR_FOR_TARGET)' \ + 'AS=$$(AS_FOR_TARGET)' \ + 'CC=$$(CC_FOR_TARGET)' \ + 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \ + 'CXX=$$(CXX_FOR_TARGET)' \ + 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ + 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ + 'LD=$$(LD_FOR_TARGET)' \ + 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ + 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \ + 'NM=$$(NM_FOR_TARGET)' \ + 'RANLIB=$$(RANLIB_FOR_TARGET)' \ + 'WINDRES=$$(WINDRES_FOR_TARGET)' + +TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) + +# Flags to pass down to gcc. gcc builds a library, libgcc.a, so it +# unfortunately needs the native compiler and the target ar and +# ranlib. +# If any variables are added here, they must be added to do-*, below. +# The HOST_* variables are a special case, which are used for the gcc +# cross-building scheme. +EXTRA_GCC_FLAGS = \ + 'AR=$(AR)' \ + 'AS=$(AS)' \ + 'CC=$(CC)' \ + 'CXX=$(CXX)' \ + 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ + 'HOST_CC=$(CC_FOR_BUILD)' \ + 'HOST_PREFIX=$(HOST_PREFIX)' \ + 'HOST_PREFIX_1=$(HOST_PREFIX_1)' \ + 'NM=$(NM)' \ + "`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \ + 'WINDRES=$$(WINDRES_FOR_TARGET)' \ + "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "`echo 'LANGUAGES=$(LANGUAGES)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'LIBGCC1_TEST=$(LIBGCC1_TEST)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'LIBGCC2_DEBUG_CFLAGS=$(LIBGCC2_DEBUG_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'ENQUIRE=$(ENQUIRE)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'STAGE1_CFLAGS=$(STAGE1_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \ + "`echo 'BOOT_CFLAGS=$(BOOT_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" + +GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) + +# This is a list of the targets for all of the modules which are compiled +# using the build machine's native compiler. Configure edits the second +# macro for build!=host builds. +ALL_BUILD_MODULES_LIST = \ + all-build-libiberty +ALL_BUILD_MODULES = + +# This is a list of the configure targets for all of the modules which +# are compiled using the native tools. +CONFIGURE_BUILD_MODULES = \ + configure-build-libiberty + +# This is a list of the targets for all of the modules which are compiled +# using $(FLAGS_TO_PASS). +ALL_MODULES = \ + all-apache \ + all-ash \ + all-autoconf \ + all-automake \ + all-bash \ + all-bfd \ + all-binutils \ + all-bison \ + all-byacc \ + all-bzip2 \ + all-cgen \ + all-cvssrc \ + all-db \ + all-dejagnu \ + all-diff \ + all-dosutils \ + all-etc \ + all-fastjar \ + all-fileutils \ + all-findutils \ + all-find \ + all-flex \ + all-gas \ + all-gawk \ + all-gettext \ + all-gnuserv \ + all-gprof \ + all-grep \ + all-grez \ + all-gzip \ + all-hello \ + all-indent \ + all-inet \ + all-intl \ + all-ispell \ + all-itcl \ + all-ld \ + all-libgui \ + all-libiberty \ + all-libtool \ + all-m4 \ + all-make \ + all-mmalloc \ + all-opcodes \ + all-patch \ + all-perl \ + all-prms \ + all-rcs \ + all-readline \ + all-release \ + all-recode \ + all-sed \ + all-send-pr \ + all-shellutils \ + all-sid \ + all-sim \ + all-snavigator \ + all-tar \ + all-tcl \ + all-tcl8.1 \ + all-texinfo \ + all-textutils \ + all-tgas \ + all-time \ + all-uudecode \ + all-wdiff \ + all-zip \ + all-zlib \ + $(EXTRA_TARGET_HOST_ALL_MODULES) + +# This is a list of the check targets for all of the modules which are +# compiled using $(FLAGS_TO_PASS). # -# Each language is linked in with a series of hooks (since we can't use `::' -# targets). The name of each hooked is "lang.${target_name}" (eg: lang.info). -# Configure computes and adds these here. - -####language hooks -@language_hooks@ - -# sed inserts language fragments after the following line. -####language fragments -@language_fragments@ - -# End of language makefile fragments. -# -# The only suffixes we want for implicit rules are .c and .o, so clear -# the list and add them. This speeds up GNU Make, and allows -r to work. -# For i18n support, we also need .gmo, .po, .pox. -.SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo - -Makefile: $(srcdir)/Makefile.in config.status $(srcdir)/version.c \ - $(xmake_file) $(tmake_file) $(LANG_MAKEFILES) - $(SHELL) $(srcdir)/configure.frag $(srcdir) "$(SUBDIRS)" \ - "$(xmake_file)" "$(tmake_file)" - cp config.status config.run - LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.run - rm -f config.run - -config.h: cs-config.h ; @true -hconfig.h: cs-hconfig.h ; @true -tconfig.h: cs-tconfig.h ; @true -tm_p.h: cs-tm_p.h ; @true - -cs-config.h: Makefile - HEADERS="$(host_xm_file)" DEFINES="$(host_xm_defines)" \ - TARGET_CPU_DEFAULT="$(target_cpu_default)" \ - $(SHELL) $(srcdir)/mkconfig.sh config.h - -cs-hconfig.h: Makefile - HEADERS="$(build_xm_file)" DEFINES="$(build_xm_defines)" \ - TARGET_CPU_DEFAULT="$(target_cpu_default)" \ - $(SHELL) $(srcdir)/mkconfig.sh hconfig.h - -cs-tconfig.h: Makefile - HEADERS="$(xm_file)" DEFINES="$(xm_defines)" \ - TARGET_CPU_DEFAULT="" \ - $(SHELL) $(srcdir)/mkconfig.sh tconfig.h - -cs-tm_p.h: Makefile - HEADERS="$(tm_p_file)" DEFINES="" TARGET_CPU_DEFAULT="" \ - $(SHELL) $(srcdir)/mkconfig.sh tm_p.h - -# Don't automatically run autoconf, since configure.in might be accidentally -# newer than configure. Also, this writes into the source directory which -# might be on a read-only file system. If configured for maintainer mode -# then do allow autoconf to be run. - -$(srcdir)/configure: @MAINT@ $(srcdir)/configure.in - (cd $(srcdir) && autoconf) - -gccbug: $(srcdir)/gccbug.in - CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status - -mklibgcc: $(srcdir)/mklibgcc.in - CONFIG_FILES=mklibgcc CONFIG_HEADERS= ./config.status - -# cstamp-h.in controls rebuilding of config.in. -# It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't -# delete it. A stamp file is needed as autoheader won't update the file if -# nothing has changed. -# It remains in the source directory and is part of the distribution. -# This follows what is done in shellutils, fileutils, etc. -# "echo timestamp" is used instead of touch to be consistent with other -# packages that use autoconf (??? perhaps also to avoid problems with patch?). -# ??? Newer versions have a maintainer mode that may be useful here. - -# Don't run autoheader automatically either. -# Only run it if maintainer mode is enabled. -@MAINT@ $(srcdir)/config.in: $(srcdir)/cstamp-h.in -@MAINT@ $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h -@MAINT@ (cd $(srcdir) && autoheader) -@MAINT@ @rm -f $(srcdir)/cstamp-h.in -@MAINT@ echo timestamp > $(srcdir)/cstamp-h.in -auto-host.h: cstamp-h ; @true -cstamp-h: config.in config.status - CONFIG_HEADERS=auto-host.h:config.in LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status - -# Really, really stupid make features, such as SUN's KEEP_STATE, may force -# a target to build even if it is up-to-date. So we must verify that -# config.status does not exist before failing. -config.status: $(srcdir)/configure $(srcdir)/config.gcc version.c - @if [ ! -f config.status ] ; then \ - echo You must configure gcc. Look at http://gcc.gnu.org/install/ for details.; \ - false; \ +# The list is in two parts. The first lists those tools which +# are tested as part of the host's native tool-chain, and not +# tested in a cross configuration. +NATIVE_CHECK_MODULES = \ + check-bison \ + check-byacc \ + check-fastjar \ + check-flex \ + check-zip + +CROSS_CHECK_MODULES = \ + check-apache \ + check-ash \ + check-autoconf \ + check-automake \ + check-bash \ + check-bfd \ + check-binutils \ + check-bzip2 \ + check-cgen \ + check-cvssrc \ + check-db \ + check-dejagnu \ + check-diff \ + check-etc \ + check-fileutils \ + check-findutils \ + check-find \ + check-gas \ + check-gawk \ + check-gettext \ + check-gnuserv \ + check-gprof \ + check-grep \ + check-gzip \ + check-hello \ + check-indent \ + check-inet \ + check-intl \ + check-ispell \ + check-itcl \ + check-ld \ + check-libgui \ + check-libiberty \ + check-libtool \ + check-m4 \ + check-make \ + check-mmcheckoc \ + check-opcodes \ + check-patch \ + check-perl \ + check-prms \ + check-rcs \ + check-readline \ + check-recode \ + check-sed \ + check-send-pr \ + check-shellutils \ + check-snavigator \ + check-sid \ + check-sim \ + check-tar \ + check-tcl \ + check-texinfo \ + check-textutils \ + check-tgas \ + check-time \ + check-uudecode \ + check-wdiff \ + $(EXTRA_TARGET_HOST_CHECK_MODULES) + +CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) + +# This is a list of the install targets for all of the modules which are +# compiled using $(FLAGS_TO_PASS). +# We put install-opcodes before install-binutils because the installed +# binutils might be on PATH, and they might need the shared opcodes +# library. +# We put install-tcl before install-itcl because itcl wants to run a +# program on installation which uses the Tcl libraries. +INSTALL_MODULES = \ + install-apache \ + install-ash \ + install-autoconf \ + install-automake \ + install-bash \ + install-bfd \ + install-bzip2 \ + install-opcodes \ + install-binutils \ + install-bison \ + install-byacc \ + install-cgen \ + install-cvssrc \ + install-db \ + install-dejagnu \ + install-diff \ + install-dosutils \ + install-etc \ + install-fastjar \ + install-fileutils \ + install-findutils \ + install-find \ + install-flex \ + install-gas \ + install-gawk \ + install-gettext \ + install-gnuserv \ + install-gprof \ + install-grep \ + install-grez \ + install-gzip \ + install-hello \ + install-indent \ + install-inet \ + install-intl \ + install-ispell \ + install-tcl \ + install-tcl8.1 \ + install-itcl \ + install-ld \ + install-libgui \ + install-libiberty \ + install-libtool \ + install-m4 \ + install-make \ + install-mmalloc \ + install-patch \ + install-perl \ + install-prms \ + install-rcs \ + install-readline \ + install-recode \ + install-sed \ + install-send-pr \ + install-shellutils \ + install-sid \ + install-sim \ + install-snavigator \ + install-tar \ + install-textutils \ + install-tgas \ + install-time \ + install-uudecode \ + install-wdiff \ + install-zip \ + $(EXTRA_TARGET_HOST_INSTALL_MODULES) + +# This is a list of the targets for all of the modules which are compiled +# using $(X11_FLAGS_TO_PASS). +ALL_X11_MODULES = \ + all-emacs \ + all-emacs19 \ + all-gdb \ + all-expect \ + all-gash \ + all-guile \ + all-tclX \ + all-tk \ + all-tk8.1 \ + all-tix + +# This is a list of the check targets for all of the modules which are +# compiled using $(X11_FLAGS_TO_PASS). +CHECK_X11_MODULES = \ + check-emacs \ + check-gdb \ + check-guile \ + check-expect \ + check-gash \ + check-tclX \ + check-tk \ + check-tix + +# This is a list of the install targets for all the modules which are +# compiled using $(X11_FLAGS_TO_PASS). +INSTALL_X11_MODULES = \ + install-emacs \ + install-emacs19 \ + install-gdb \ + install-guile \ + install-expect \ + install-gash \ + install-tclX \ + install-tk \ + install-tk8.1 \ + install-tix + +# This is a list of the targets for all of the modules which are compiled +# using $(TARGET_FLAGS_TO_PASS). +ALL_TARGET_MODULES = \ + all-target-libstdc++-v3 \ + all-target-librx \ + all-target-newlib \ + all-target-libf2c \ + all-target-libobjc \ + all-target-libtermcap \ + all-target-winsup \ + all-target-libgloss \ + all-target-libiberty \ + all-target-gperf \ + all-target-examples \ + all-target-libstub \ + all-target-libffi \ + all-target-libjava \ + all-target-zlib \ + all-target-boehm-gc \ + all-target-qthreads \ + all-target-bsp \ + all-target-cygmon + +# This is a list of the configure targets for all of the modules which +# are compiled using the target tools. +CONFIGURE_TARGET_MODULES = \ + configure-target-libstdc++-v3 \ + configure-target-librx \ + configure-target-newlib \ + configure-target-libf2c \ + configure-target-libobjc \ + configure-target-libtermcap \ + configure-target-winsup \ + configure-target-libgloss \ + configure-target-libiberty \ + configure-target-gperf \ + configure-target-examples \ + configure-target-libstub \ + configure-target-libffi \ + configure-target-libjava \ + configure-target-zlib \ + configure-target-boehm-gc \ + configure-target-qthreads \ + configure-target-bsp \ + configure-target-cygmon + +# This is a list of the check targets for all of the modules which are +# compiled using $(TARGET_FLAGS_TO_PASS). +CHECK_TARGET_MODULES = \ + check-target-libstdc++-v3 \ + check-target-newlib \ + check-target-libf2c \ + check-target-libobjc \ + check-target-winsup \ + check-target-libiberty \ + check-target-libffi \ + check-target-libjava \ + check-target-zlib \ + check-target-boehm-gc \ + check-target-qthreads \ + check-target-gperf + +# This is a list of the install targets for all of the modules which are +# compiled using $(TARGET_FLAGS_TO_PASS). +INSTALL_TARGET_MODULES = \ + install-target-libstdc++-v3 \ + install-target-newlib \ + install-target-libf2c \ + install-target-libobjc \ + install-target-libtermcap \ + install-target-winsup \ + install-target-libgloss \ + install-target-libiberty \ + install-target-bsp \ + install-target-libjava \ + install-target-zlib \ + install-target-boehm-gc \ + install-target-qthreads \ + install-target-gperf + +# This is a list of the targets for which we can do a clean-{target}. +CLEAN_MODULES = \ + clean-apache \ + clean-ash \ + clean-autoconf \ + clean-automake \ + clean-bash \ + clean-bfd \ + clean-binutils \ + clean-bison \ + clean-byacc \ + clean-bzip2 \ + clean-cgen \ + clean-cvssrc \ + clean-db \ + clean-dejagnu \ + clean-diff \ + clean-dosutils \ + clean-etc \ + clean-fastjar \ + clean-fileutils \ + clean-findutils \ + clean-find \ + clean-flex \ + clean-gas \ + clean-gawk \ + clean-gettext \ + clean-gnuserv \ + clean-gprof \ + clean-grep \ + clean-grez \ + clean-gzip \ + clean-hello \ + clean-indent \ + clean-inet \ + clean-intl \ + clean-ispell \ + clean-itcl \ + clean-ld \ + clean-libgui \ + clean-libiberty \ + clean-libtool \ + clean-m4 \ + clean-make \ + clean-mmalloc \ + clean-opcodes \ + clean-patch \ + clean-perl \ + clean-prms \ + clean-rcs \ + clean-readline \ + clean-release \ + clean-recode \ + clean-sed \ + clean-send-pr \ + clean-shellutils \ + clean-sid \ + clean-sim \ + clean-snavigator \ + clean-tar \ + clean-tcl \ + clean-texinfo \ + clean-textutils \ + clean-tgas \ + clean-time \ + clean-uudecode \ + clean-wdiff \ + clean-zip \ + clean-zlib + +# All of the target modules that can be cleaned +CLEAN_TARGET_MODULES = \ + clean-target-libstdc++-v3 \ + clean-target-librx \ + clean-target-newlib \ + clean-target-libf2c \ + clean-target-libobjc \ + clean-target-winsup \ + clean-target-libgloss \ + clean-target-libiberty \ + clean-target-gperf \ + clean-target-examples \ + clean-target-libstub \ + clean-target-libffi \ + clean-target-libjava \ + clean-target-zlib \ + clean-target-boehm-gc \ + clean-target-qthreads \ + clean-target-bsp \ + clean-target-cygmon + +# All of the x11 modules that can be cleaned +CLEAN_X11_MODULES = \ + clean-emacs \ + clean-emacs19 \ + clean-gdb \ + clean-expect \ + clean-gash \ + clean-guile \ + clean-tclX \ + clean-tk \ + clean-tix + +# The target built for a native build. +.PHONY: all.normal +all.normal: \ + $(ALL_BUILD_MODULES) \ + $(ALL_MODULES) \ + $(ALL_X11_MODULES) \ + $(ALL_TARGET_MODULES) \ + all-gcc + +# Do a target for all the subdirectories. A ``make do-X'' will do a +# ``make X'' in all subdirectories (because, in general, there is a +# dependency (below) of X upon do-X, a ``make X'' will also do this, +# but it may do additional work as well). +# This target ensures that $(BASE_FLAGS_TO_PASS) appears only once, +# because it is so large that it can easily overflow the command line +# length limit on some systems. +DO_X = \ + do-clean \ + do-distclean \ + do-dvi \ + do-info \ + do-install-info \ + do-installcheck \ + do-mostlyclean \ + do-maintainer-clean \ + do-TAGS +.PHONY: $(DO_X) +$(DO_X): + @target=`echo $@ | sed -e 's/^do-//'`; \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + *) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + if (cd ./$$i; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + $${target}); \ + then true; else exit 1; fi; \ + else true; fi; \ + done + @target=`echo $@ | sed -e 's/^do-//'`; \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + for i in $(TARGET_CONFIGDIRS) -dummy-; do \ + if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + if (cd $(TARGET_SUBDIR)/$$i; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + $${target}); \ + then true; else exit 1; fi; \ + else true; fi; \ + done + +# Here are the targets which correspond to the do-X targets. + +.PHONY: info installcheck dvi install-info +.PHONY: clean distclean mostlyclean maintainer-clean realclean +.PHONY: local-clean local-distclean local-maintainer-clean +info: do-info +installcheck: do-installcheck +dvi: do-dvi + +# Make sure makeinfo is built before we do a `make info'. +do-info: all-texinfo + +install-info: do-install-info dir.info + s=`cd $(srcdir); pwd`; export s; \ + if [ -f dir.info ] ; then \ + $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \ + else true ; fi + +local-clean: + -rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log + +local-distclean: + -rm -f Makefile config.status config.cache mh-frag mt-frag + -if [ "$(TARGET_SUBDIR)" != "." ]; then \ + rm -rf $(TARGET_SUBDIR); \ + else true; fi + -rm -f texinfo/po/Makefile texinfo/po/Makefile.in texinfo/info/Makefile + -rm -f texinfo/doc/Makefile texinfo/po/POTFILES + -rmdir texinfo/doc texinfo/info texinfo/intl texinfo/lib 2>/dev/null + -rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null + -rmdir fastjar gcc libiberty texinfo zlib 2>/dev/null + +local-maintainer-clean: + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +clean: do-clean local-clean +mostlyclean: do-mostlyclean local-clean +distclean: do-distclean local-clean local-distclean +maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean +maintainer-clean: local-distclean +realclean: maintainer-clean + +# This rule is used to clean specific modules. +.PHONY: $(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc +$(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc: + @dir=`echo $@ | sed -e 's/clean-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) clean); \ else \ - LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status --recheck; \ + true; \ fi -all.internal: start.encap rest.encap doc -# This is what to compile if making a cross-compiler. -# Note that we can compile enquire using the cross-compiler just built, -# although we can't run it on this machine. -all.cross: native gcc-cross cpp$(exeext) specs \ - $(LIBGCC) $(EXTRA_PARTS) lang.all.cross doc -# This is what must be made before installing GCC and converting libraries. -start.encap: native xgcc$(exeext) cpp$(exeext) specs \ - xlimits.h lang.start.encap -# These can't be made until after GCC can run. -rest.encap: $(STMP_FIXPROTO) $(LIBGCC) $(EXTRA_PARTS) lang.rest.encap -# This is what is made with the host's compiler -# whether making a cross compiler or not. -native: config.status auto-host.h intl.all build-@POSUB@ $(LANGUAGES) \ - $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(USE_COLLECT2) - -# Define the names for selecting languages in LANGUAGES. -C c: cc1$(exeext) tradcpp0$(exeext) -PROTO: proto - -# Tell GNU make these are phony targets. -.PHONY: C c PROTO proto - -# On the target machine, finish building a cross compiler. -# This does the things that can't be done on the host machine. -rest.cross: $(LIBGCC) specs - -# Recompile all the language-independent object files. -# This is used only if the user explicitly asks for it. -compilations: $(BACKEND) - -# Like libcpp.a, this archive is strictly for the host. -libbackend.a: $(OBJS) - -rm -rf libbackend.a - $(AR) $(AR_FLAGS) libbackend.a $(OBJS) - -$(RANLIB) libbackend.a - -# We call this executable `xgcc' rather than `gcc' -# to avoid confusion if the current directory is in the path -# and CC is `gcc'. It is renamed to `gcc' when it is installed. -xgcc$(exeext): gcc.o gccspec.o version.o intl.o prefix.o \ - version.o $(LIBDEPS) $(EXTRA_GCC_OBJS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gcc.o gccspec.o intl.o \ - prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS) - -# cpp is to cpp0 as gcc is to cc1. -# The only difference from xgcc is that it's linked with cppspec.o -# instead of gccspec.o. -cpp$(exeext): gcc.o cppspec.o version.o intl.o prefix.o \ - version.o $(LIBDEPS) $(EXTRA_GCC_OBJS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gcc.o cppspec.o intl.o \ - prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS) - -# Dump a specs file to make -B./ read these specs over installed ones. -specs: xgcc$(exeext) - $(GCC_FOR_TARGET) -dumpspecs > tmp-specs - mv tmp-specs specs - -# We do want to create an executable named `xgcc', so we can use it to -# compile libgcc2.a. -# Also create gcc-cross, so that install-common will install properly. -gcc-cross: xgcc$(exeext) - cp xgcc$(exeext) gcc-cross$(exeext) - -cc1$(exeext): $(C_OBJS) $(BACKEND) $(LIBDEPS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cc1$(exeext) \ - $(C_OBJS) $(BACKEND) $(LIBS) - -# Build the version of limits.h that we will install. -xlimits.h: glimits.h limitx.h limity.h - if $(LIMITS_H_TEST) ; then \ - cat $(srcdir)/limitx.h $(srcdir)/glimits.h $(srcdir)/limity.h > tmp-xlimits.h; \ +.PHONY: $(CLEAN_TARGET_MODULES) +$(CLEAN_TARGET_MODULES): + @dir=`echo $@ | sed -e 's/clean-target-//'`; \ + rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \ + if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \ else \ - cat $(srcdir)/glimits.h > tmp-xlimits.h; \ + true; \ fi - mv tmp-xlimits.h xlimits.h -# -# Build libgcc.a. - -LIB2ADD = $(LIB2FUNCS_EXTRA) -LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA) - -libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) xgcc$(exeext) - objext='$(objext)' \ - LIB1ASMFUNCS='$(LIB1ASMFUNCS)' \ - LIB2FUNCS_1='$(LIB2FUNCS_1)' \ - LIB2FUNCS_2='$(LIB2FUNCS_2)' \ - LIB2FUNCS_ST='$(LIB2FUNCS_ST)' \ - LIB2ADD='$(LIB2ADD)' \ - LIB2ADD_ST='$(LIB2ADD_ST)' \ - LIB2ADDEH='$(LIB2ADDEH)' \ - LIB2ADDEHDEP='$(LIB2ADDEHDEP)' \ - FPBIT='$(FPBIT)' \ - FPBIT_FUNCS='$(FPBIT_FUNCS)' \ - LIB2_DIVMOD_FUNCS='$(LIB2_DIVMOD_FUNCS)' \ - DPBIT='$(DPBIT)' \ - DPBIT_FUNCS='$(DPBIT_FUNCS)' \ - MULTILIBS=`$(GCC_FOR_TARGET) --print-multi-lib` \ - EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \ - SHLIB_LINK='$(SHLIB_LINK)' \ - SHLIB_INSTALL='$(SHLIB_INSTALL)' \ - SHLIB_EXT='$(SHLIB_EXT)' \ - SHLIB_MULTILIB='$(SHLIB_MULTILIB)' \ - SHLIB_MKMAP='$(SHLIB_MKMAP)' \ - SHLIB_MKMAP_OPTS='$(SHLIB_MKMAP_OPTS)' \ - SHLIB_MAPFILES='$(SHLIB_MAPFILES)' \ - SHLIB_NM_FLAGS='$(SHLIB_NM_FLAGS)' \ - MULTILIB_OSDIRNAMES='$(MULTILIB_OSDIRNAMES)' \ - mkinstalldirs='$(SHELL) $(srcdir)/mkinstalldirs' \ - $(SHELL) mklibgcc > tmp-libgcc.mk - mv tmp-libgcc.mk libgcc.mk - -# All the things that might cause us to want to recompile bits of libgcc. -LIBGCC_DEPS = $(GCC_PASSES) $(LANGUAGES) stmp-int-hdrs $(STMP_FIXPROTO) \ - libgcc.mk $(srcdir)/libgcc2.c $(TCONFIG_H) \ - $(MACHMODE_H) longlong.h gbl-ctors.h config.status stmp-int-hdrs \ - tsystem.h $(FPBIT) $(DPBIT) $(LIB2ADD) $(LIB2ADD_ST) $(LIB2ADDEH) \ - $(LIB2ADDEHDEP) $(EXTRA_PARTS) $(srcdir)/config/$(LIB1ASMSRC) - -libgcc.a: $(LIBGCC_DEPS) - $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ - HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \ - AR_FOR_TARGET="$(AR_FOR_TARGET)" \ - AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ - AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \ - CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \ - RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)" \ - RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \ - NM_FOR_TARGET="$(NM_FOR_TARGET)" AWK="$(AWK)" \ - LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)" \ - INCLUDES="$(INCLUDES)" \ - CONFIG_H="$(TCONFIG_H)" MACHMODE_H="$(MACHMODE_H)" \ - LIB1ASMSRC='$(LIB1ASMSRC)' \ - MAKEOVERRIDES= \ - -f libgcc.mk all - -# Use the genmultilib shell script to generate the information the gcc -# driver program needs to select the library directory based on the -# switches. -multilib.h: s-mlib; @true -s-mlib: $(srcdir)/genmultilib Makefile - if test @enable_multilib@ = yes \ - || test -n "$(MULTILIB_OSDIRNAMES)"; then \ - $(SHELL) $(srcdir)/genmultilib \ - "$(MULTILIB_OPTIONS)" \ - "$(MULTILIB_DIRNAMES)" \ - "$(MULTILIB_MATCHES)" \ - "$(MULTILIB_EXCEPTIONS)" \ - "$(MULTILIB_EXTRA_OPTS)" \ - "$(MULTILIB_EXCLUSIONS)" \ - "$(MULTILIB_OSDIRNAMES)" \ - "@enable_multilib@" \ - > tmp-mlib.h; \ + +clean-target: $(CLEAN_TARGET_MODULES) clean-target-libgcc +clean-target-libgcc: + test ! -d gcc/libgcc || \ + (cd gcc/libgcc && find . -type d -print) | \ + while read d; do rm -f gcc/$$d/libgcc.a || : ; done + -rm -rf gcc/libgcc + +# Check target. + +.PHONY: check do-check +check: + $(MAKE) do-check NOTPARALLEL=parallel-ok + +do-check: $(CHECK_MODULES) \ + $(CHECK_TARGET_MODULES) \ + $(CHECK_X11_MODULES) \ + check-gcc + +# Automated reporting of test results. + +warning.log: build.log + $(srcdir)/contrib/warn_summary build.log > $@ + +mail-report.log: + if test x'$(BOOT_CFLAGS)' != x''; then \ + BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \ + fi; \ + $(srcdir)/contrib/test_summary -t >$@ + chmod +x $@ + echo If you really want to send e-mail, run ./$@ now + +mail-report-with-warnings.log: warning.log + if test x'$(BOOT_CFLAGS)' != x''; then \ + BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \ + fi; \ + $(srcdir)/contrib/test_summary -t -i warning.log >$@ + chmod +x $@ + echo If you really want to send e-mail, run ./$@ now + +# Installation targets. + +.PHONY: install install-cross uninstall source-vault binary-vault vault-install +install: $(INSTALL_TARGET) +install-cross: $(INSTALL_TARGET_CROSS) + +uninstall: + @echo "the uninstall target is not supported in this tree" + +source-vault: + $(MAKE) -f ./release/Build-A-Release \ + host=$(host_alias) source-vault + +binary-vault: + $(MAKE) -f ./release/Build-A-Release \ + host=$(host_alias) target=$(target_alias) + +vault-install: + @if [ -f ./release/vault-install ] ; then \ + ./release/vault-install $(host_alias) $(target_alias) ; \ else \ - $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' '' no \ - > tmp-mlib.h; \ + true ; \ fi - $(SHELL) $(srcdir)/move-if-change tmp-mlib.h multilib.h - $(STAMP) s-mlib - -# Build multiple copies of libgcc.a, one for each target switch. -stmp-multilib: $(LIBGCC_DEPS) - $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ - HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \ - AR_FOR_TARGET="$(AR_FOR_TARGET)" \ - AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ - AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \ - CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \ - RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)" \ - RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \ - NM_FOR_TARGET="$(NM_FOR_TARGET)" AWK="$(AWK)" \ - LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)" \ - INCLUDES="$(INCLUDES)" \ - CONFIG_H="$(CONFIG_H)" MACHMODE_H="$(MACHMODE_H)" \ - LIB1ASMSRC='$(LIB1ASMSRC)' \ - MAKEOVERRIDES= \ - -f libgcc.mk all - $(STAMP) stmp-multilib - -# Compile two additional files that are linked with every program -# linked using GCC on systems using COFF or ELF, for the sake of C++ -# constructors. -$(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ - gbl-ctors.h stmp-int-hdrs tsystem.h - $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \ - @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN \ - -o $(T)crtbegin$(objext) - -$(T)crtend.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ - gbl-ctors.h stmp-int-hdrs tsystem.h - $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \ - @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_END \ - -o $(T)crtend$(objext) - -# These are versions of crtbegin and crtend for shared libraries. -$(T)crtbeginS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ - gbl-ctors.h stmp-int-hdrs tsystem.h - $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \ - @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O \ - -o $(T)crtbeginS$(objext) - -$(T)crtendS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ - gbl-ctors.h stmp-int-hdrs tsystem.h - $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \ - @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_END -DCRTSTUFFS_O \ - -o $(T)crtendS$(objext) - -# This is a version of crtbegin for -static links. -$(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ - gbl-ctors.h stmp-int-hdrs tsystem.h - $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \ - @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \ - -o $(T)crtbeginT$(objext) - -# Compile the start modules crt0.o and mcrt0.o that are linked with -# every program -crt0.o: s-crt0 ; @true -mcrt0.o: s-crt0; @true - -s-crt0: $(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H) - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \ - -o crt0.o -c $(CRT0_S) - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \ - -o mcrt0.o -c $(MCRT0_S) - $(STAMP) s-crt0 -# -# Compiling object files from source files. - -# Note that dependencies on obstack.h are not written -# because that file is not part of GCC. - -# C language specific files. - -c-errors.o: c-errors.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) flags.h \ - diagnostic.h $(TM_P_H) -c-parse.o : $(srcdir)/c-parse.c $(CONFIG_H) $(TREE_H) c-lex.h $(GGC_H) intl.h \ - $(C_TREE_H) input.h flags.h $(SYSTEM_H) toplev.h output.h $(CPPLIB_H) - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - -c $(srcdir)/c-parse.c $(OUTPUT_OPTION) - -$(srcdir)/c-parse.c: $(srcdir)/c-parse.y - cd $(srcdir) && \ - if $(BISON) $(BISONFLAGS) -o c-p$$$$.c c-parse.y; then \ - test -f c-p$$$$.output && mv -f c-p$$$$.output c-parse.output ; \ - mv -f c-p$$$$.c c-parse.c ; \ + +.PHONY: install.all +install.all: install-no-fixedincludes + @if [ -f ./gcc/Makefile ] ; then \ + r=`pwd` ; export r ; \ + $(SET_LIB_PATH) \ + (cd ./gcc; \ + $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \ else \ - rm -f c-p$$$$.* ; \ - false ; \ + true ; \ fi -$(srcdir)/c-parse.y: c-parse.in - echo '/*WARNING: This file is automatically generated!*/' >tmp-c-parse.y - sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \ - -e "/^ifc$$/d" -e "/^end ifc$$/d" \ - $(srcdir)/c-parse.in >>tmp-c-parse.y - $(SHELL) $(srcdir)/move-if-change tmp-c-parse.y $(srcdir)/c-parse.y - -c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) $(C_TREE_H) \ - $(GGC_H) $(TARGET_H) c-lex.h flags.h function.h output.h $(EXPR_H) \ - debug.h toplev.h intl.h $(TM_P_H) tree-inline.h $(TIMEVAR_H) c-pragma.h -c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ - $(TARGET_H) flags.h intl.h output.h $(EXPR_H) $(RTL_H) toplev.h $(TM_P_H) -c-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ - langhooks.h langhooks-def.h -c-lex.o : c-lex.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) c-lex.h \ - debug.h $(C_TREE_H) \ - c-pragma.h input.h intl.h flags.h toplev.h output.h \ - mbchar.h $(CPPLIB_H) $(EXPR_H) $(TM_P_H) -c-objc-common.o : c-objc-common.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \ - $(C_TREE_H) $(RTL_H) insn-config.h integrate.h $(EXPR_H) $(C_TREE_H) \ - flags.h toplev.h tree-inline.h diagnostic.h integrate.h $(VARRAY_H) \ - $(GGC_H) -c-aux-info.o : c-aux-info.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ - flags.h toplev.h -c-convert.o : c-convert.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h toplev.h -c-pragma.o: c-pragma.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) function.h \ - c-pragma.h toplev.h output.h $(GGC_H) $(TM_P_H) $(C_COMMON_H) -mbchar.o: mbchar.c $(CONFIG_H) $(SYSTEM_H) mbchar.h -graph.o: graph.c $(CONFIG_H) $(SYSTEM_H) toplev.h flags.h output.h $(RTL_H) \ - function.h hard-reg-set.h $(BASIC_BLOCK_H) graph.h -sbitmap.o: sbitmap.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h hard-reg-set.h \ - $(BASIC_BLOCK_H) - -COLLECT2_OBJS = collect2.o tlink.o hash.o intl.o underscore.o version.o -COLLECT2_LIBS = @COLLECT2_LIBS@ -collect2$(exeext): $(COLLECT2_OBJS) $(LIBDEPS) -# Don't try modifying collect2 (aka ld) in place--it might be linking this. - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o T$@ \ - $(COLLECT2_OBJS) $(LIBS) $(COLLECT2_LIBS) - mv -f T$@ $@ - -collect2.o : collect2.c $(CONFIG_H) $(SYSTEM_H) gstab.h intl.h \ - $(OBSTACK_H) $(DEMANGLE_H) collect2.h version.h - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - -DTARGET_MACHINE=\"$(target_alias)\" \ - -c $(srcdir)/collect2.c $(OUTPUT_OPTION) - -tlink.o: tlink.c $(DEMANGLE_H) hash.h $(CONFIG_H) $(SYSTEM_H) collect2.h intl.h -hash.o: hash.c hash.h $(SYSTEM_H) toplev.h $(GCONFIG_H) - $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) - -underscore.c: s-under ; @true - -s-under: $(GCC_PASSES) - echo "int xxy_us_dummy;" >tmp-dum.c - $(GCC_FOR_TARGET) -S tmp-dum.c - echo '/*WARNING: This file is automatically generated!*/' >tmp-under.c - if grep _xxy_us_dummy tmp-dum.s > /dev/null ; then \ - echo "int prepends_underscore = 1;" >>tmp-under.c; \ +# inet-install is used because the I*Net wants DejaGNU installed but +# not built. Similarly, gzip is built but not installed. +inet-install: + $(MAKE) INSTALL_MODULES="`echo $(INSTALL_MODULES) | sed -e 's/install-dejagnu//' -e 's/install-gzip//'`" install + +# install-no-fixedincludes is used because Cygnus can not distribute +# the fixed header files. +.PHONY: install-no-fixedincludes +install-no-fixedincludes: \ + installdirs \ + $(INSTALL_MODULES) \ + $(INSTALL_TARGET_MODULES) \ + $(INSTALL_X11_MODULES) \ + gcc-no-fixedincludes + +# Install the gcc headers files, but not the fixed include files, +# which Cygnus is not allowed to distribute. This rule is very +# dependent on the workings of the gcc Makefile.in. +.PHONY: gcc-no-fixedincludes +gcc-no-fixedincludes: + @if [ -f ./gcc/Makefile ]; then \ + rm -rf gcc/tmp-include; \ + mv gcc/include gcc/tmp-include 2>/dev/null; \ + mkdir gcc/include; \ + cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \ + touch gcc/stmp-fixinc gcc/include/fixed; \ + rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd` ; export s; \ + $(SET_LIB_PATH) \ + (cd ./gcc; \ + $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ + rm -rf gcc/include; \ + mv gcc/tmp-include gcc/include 2>/dev/null; \ + else true; fi + +# This rule is used to build the modules which are built with the +# build machine's native compiler. +.PHONY: $(ALL_BUILD_MODULES) +$(ALL_BUILD_MODULES): + dir=`echo $@ | sed -e 's/all-build-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + (cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \ else \ - echo "int prepends_underscore = 0;" >>tmp-under.c; \ + true; \ fi - $(SHELL) $(srcdir)/move-if-change tmp-under.c underscore.c - -rm -f tmp-dum.c tmp-dum.s - $(STAMP) s-under - -# A file used by all variants of C. - -c-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(OBSTACK_H) \ - $(C_COMMON_H) flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \ - $(EXPR_H) $(TM_P_H) builtin-types.def builtin-attrs.def $(TARGET_H) \ - diagnostic.h tree-inline.h $(LANGHOOKS_DEF_H) - -# A file used by all variants of C and some other languages. - -attribs.o : attribs.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(OBSTACK_H) flags.h \ - toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) $(EXPR_H) $(TM_P_H) \ - builtin-types.def $(TARGET_H) - -c-format.o : c-format.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \ - $(C_COMMON_H) flags.h toplev.h intl.h diagnostic.h - -c-semantics.o : c-semantics.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ - c-lex.h flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \ - $(EXPR_H) - -# Language-independent files. - -DRIVER_DEFINES = \ - -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \ - -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-lib/\" \ - -DDEFAULT_TARGET_VERSION=\"$(version)\" \ - -DDEFAULT_TARGET_MACHINE=\"$(target_alias)\" \ - -DSTANDARD_BINDIR_PREFIX=\"$(bindir)/\" \ - -DTOOLDIR_BASE_PREFIX=\"$(unlibsubdir)/../\" \ - `test "X$${SHLIB_LINK}" = "X" || test "@enable_shared@" != "yes" || echo "-DENABLE_SHARED_LIBGCC"` \ - `test "X$${SHLIB_MULTILIB}" = "X" || echo "-DNO_SHARED_LIBGCC_MULTILIB"` - -gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) intl.h multilib.h \ - Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) - (SHLIB_LINK='$(SHLIB_LINK)' \ - SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \ - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - $(DRIVER_DEFINES) \ - -c $(srcdir)/gcc.c $(OUTPUT_OPTION)) - -gccspec.o: gccspec.c $(CONFIG_H) $(SYSTEM_H) $(GCC_H) - (SHLIB_LINK='$(SHLIB_LINK)' \ - SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \ - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - $(DRIVER_DEFINES) \ - -c $(srcdir)/gccspec.c $(OUTPUT_OPTION)) - -cppspec.o: cppspec.c $(CONFIG_H) $(SYSTEM_H) $(GCC_H) - -tree-check.h: s-check ; @true -s-check : gencheck$(build_exeext) $(srcdir)/move-if-change - ./gencheck$(build_exeext) > tmp-check.h - $(SHELL) $(srcdir)/move-if-change tmp-check.h tree-check.h - $(STAMP) s-check - -gencheck$(build_exeext) : gencheck.o $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - gencheck.o $(HOST_LIBS) - -gencheck.o : gencheck.c gencheck.h tree.def $(HCONFIG_H) $(SYSTEM_H) \ - $(lang_tree_files) - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \ - $(srcdir)/gencheck.c $(OUTPUT_OPTION) - -gencheck.h : s-gencheck ; @true -s-gencheck : Makefile - ltf="$(lang_tree_files)"; for f in $$ltf; do \ - echo "#include \"$$f\""; \ - done | sed 's|$(srcdir)/||' > tmp-gencheck.h - $(SHELL) $(srcdir)/move-if-change tmp-gencheck.h gencheck.h - $(STAMP) s-gencheck - -options.h : s-options ; @true -s-options : Makefile - lof="$(lang_options_files)"; for f in $$lof; do \ - echo "#include \"$$f\""; \ - done | sed 's|$(srcdir)/||' > tmp-options.h - $(SHELL) $(srcdir)/move-if-change tmp-options.h options.h - $(STAMP) s-options - -specs.h : s-specs ; @true -s-specs : Makefile - lsf="$(lang_specs_files)"; for f in $$lsf; do \ - echo "#include \"$$f\""; \ - done | sed 's|$(srcdir)/||' > tmp-specs.h - $(SHELL) $(srcdir)/move-if-change tmp-specs.h specs.h - $(STAMP) s-specs - -dumpvers: dumpvers.c - -version.o: version.c version.h - -ggc-common.o: ggc-common.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) \ - flags.h $(GGC_H) varray.h hash.h $(HASHTAB_H) $(TM_P_H) - -ggc-simple.o: ggc-simple.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - $(GGC_H) varray.h $(TIMEVAR_H) $(TM_P_H) - -ggc-page.o: ggc-page.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - toplev.h $(GGC_H) varray.h $(TIMEVAR_H) $(TM_P_H) - -stringpool.o: stringpool.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(OBSTACK_H) \ - flags.h toplev.h - -hashtable.o: hashtable.c hashtable.h $(CONFIG_H) $(SYSTEM_H) $(OBSTACK_H) - -line-map.o: line-map.c line-map.h intl.h $(CONFIG_H) $(SYSTEM_H) - -ggc-none.o: ggc-none.c $(GCONFIG_H) $(SYSTEM_H) $(GGC_H) - $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) - -prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) Makefile prefix.h - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - -DPREFIX=\"$(prefix)\" \ - -c $(srcdir)/prefix.c $(OUTPUT_OPTION) - -convert.o: convert.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h convert.h toplev.h - -langhooks.o : langhooks.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) toplev.h \ - tree-inline.h $(RTL_H) insn-config.h integrate.h langhooks.h \ - $(LANGHOOKS_DEF_H) flags.h -tree.o : tree.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h function.h toplev.h \ - $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) langhooks.h -tree-dump.o: tree-dump.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \ - flags.h langhooks.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \ - $(EXPR_H) $(SPLAY_TREE_H) tree-dump.h -tree-inline.o : tree-inline.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) \ - expr.h flags.h params.h input.h insn-config.h $(INTEGRATE_H) \ - $(VARRAY_H) $(HASHTAB_H) $(SPLAY_TREE_H) toplev.h langhooks.h \ - $(C_COMMON_H) tree-inline.h -print-tree.o : print-tree.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(GGC_H) \ - langhooks.h -stor-layout.o : stor-layout.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h \ - function.h $(EXPR_H) $(RTL_H) toplev.h $(GGC_H) $(TM_P_H) $(TARGET_H) -fold-const.o : fold-const.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) flags.h \ - toplev.h $(HASHTAB_H) $(EXPR_H) $(RTL_H) $(GGC_H) $(TM_P_H) -diagnostic.o : diagnostic.c diagnostic.h real.h diagnostic.def \ - $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TM_P_H) flags.h $(GGC_H) \ - input.h toplev.h intl.h -toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) function.h \ - flags.h xcoffout.h input.h $(INSN_ATTR_H) output.h diagnostic.h \ - debug.h insn-config.h intl.h $(RECOG_H) Makefile toplev.h \ - dwarf2out.h sdbout.h dbxout.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \ - graph.h $(LOOP_H) except.h $(REGS_H) $(TIMEVAR_H) $(lang_options_files) \ - ssa.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) halfpic.h \ - langhooks.h insn-flags.h options.h - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - -DTARGET_NAME=\"$(target_alias)\" \ - -c $(srcdir)/toplev.c $(OUTPUT_OPTION) -main.o : main.c $(CONFIG_H) $(SYSTEM_H) toplev.h - -rtl-error.o: rtl-error.c system.h $(RTL_H) $(INSN_ATTR_H) insn-config.h \ - input.h toplev.h intl.h diagnostic.h $(CONFIG_H) - -rtl.o : rtl.c $(GCONFIG_H) $(SYSTEM_H) $(RTL_H) real.h $(GGC_H) errors.h - $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) - -print-rtl.o : print-rtl.c $(GCONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) \ - hard-reg-set.h $(BASIC_BLOCK_H) - $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) - -rtlanal.o : rtlanal.c $(CONFIG_H) $(SYSTEM_H) toplev.h $(RTL_H) hard-reg-set.h $(TM_P_H) -errors.o : errors.c $(GCONFIG_H) $(SYSTEM_H) errors.h - $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) - -varasm.o : varasm.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) flags.h \ - function.h $(EXPR_H) hard-reg-set.h $(REGS_H) $(OBSTACK_H) \ - output.h c-pragma.h toplev.h xcoffout.h debug.h $(GGC_H) $(TM_P_H) \ - $(HASHTAB_H) $(TARGET_H) langhooks.h -function.o : function.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - function.h $(EXPR_H) libfuncs.h $(REGS_H) hard-reg-set.h \ - insn-config.h $(RECOG_H) output.h toplev.h except.h hash.h $(GGC_H) $(TM_P_H) -stmt.o : stmt.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h function.h \ - insn-config.h hard-reg-set.h $(EXPR_H) libfuncs.h except.h \ - $(LOOP_H) $(RECOG_H) toplev.h output.h varray.h $(GGC_H) $(TM_P_H) -except.o : except.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - except.h function.h $(EXPR_H) libfuncs.h integrate.h \ - insn-config.h hard-reg-set.h $(BASIC_BLOCK_H) output.h \ - dwarf2asm.h dwarf2out.h toplev.h $(HASHTAB_H) intl.h $(GGC_H) -expr.o : expr.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h function.h \ - $(REGS_H) $(EXPR_H) $(OPTABS_H) libfuncs.h insn-attr.h insn-config.h \ - $(RECOG_H) output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h \ - except.h reload.h $(GGC_H) langhooks.h intl.h $(TM_P_H) -builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - $(TARGET_H) function.h $(REGS_H) $(EXPR_H) $(OPTABS_H) insn-config.h \ - $(RECOG_H) output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h \ - except.h $(TM_P_H) $(PREDICT_H) libfuncs.h -calls.o : calls.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h $(EXPR_H) \ - libfuncs.h $(REGS_H) toplev.h output.h function.h $(TIMEVAR_H) $(TM_P_H) -expmed.o : expmed.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) real.h \ - toplev.h $(TM_P_H) -explow.o : explow.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - hard-reg-set.h insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) \ - toplev.h function.h ggc.h $(TM_P_H) -optabs.o : optabs.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - insn-config.h $(EXPR_H) $(OPTABS_H) libfuncs.h $(RECOG_H) reload.h \ - toplev.h $(GGC_H) real.h $(TM_P_H) except.h -dbxout.o : dbxout.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) flags.h \ - $(REGS_H) debug.h $(TM_P_H) $(TARGET_H) function.h langhooks.h \ - insn-config.h reload.h gstab.h xcoffout.h output.h dbxout.h toplev.h -debug.o : debug.c $(CONFIG_H) $(SYSTEM_H) -sdbout.o : sdbout.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) flags.h \ - function.h $(EXPR_H) output.h hard-reg-set.h $(REGS_H) real.h \ - insn-config.h $(OBSTACK_H) xcoffout.h c-pragma.h ggc.h \ - sdbout.h toplev.h $(TM_P_H) except.h debug.h -dwarfout.o : dwarfout.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) dwarf.h \ - flags.h insn-config.h reload.h output.h toplev.h $(TM_P_H) \ - debug.h langhooks.h -dwarf2out.o : dwarf2out.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) dwarf2.h \ - debug.h flags.h insn-config.h reload.h output.h diagnostic.h \ - hard-reg-set.h $(REGS_H) $(EXPR_H) libfuncs.h toplev.h dwarf2out.h varray.h \ - $(GGC_H) except.h dwarf2asm.h $(TM_P_H) langhooks.h -dwarf2asm.o : dwarf2asm.c $(CONFIG_H) $(SYSTEM_H) flags.h $(RTL_H) $(TREE_H) \ - output.h dwarf2asm.h $(TM_P_H) -vmsdbgout.o : vmsdbgout.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) flags.h \ - output.h vmsdbg.h debug.h langhooks.h -xcoffout.o : xcoffout.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) xcoffout.h \ - flags.h toplev.h output.h dbxout.h $(GGC_H) -emit-rtl.o : emit-rtl.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - function.h $(REGS_H) insn-config.h $(RECOG_H) real.h $(GGC_H) \ - $(EXPR_H) $(srcdir)/../include/obstack.h hard-reg-set.h bitmap.h toplev.h \ - $(HASHTAB_H) $(TM_P_H) debug.h langhooks.h -real.o : real.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) toplev.h $(TM_P_H) -integrate.o : integrate.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - debug.h $(INTEGRATE_H) insn-config.h $(EXPR_H) real.h $(REGS_H) \ - intl.h function.h output.h $(RECOG_H) except.h toplev.h $(LOOP_H) \ - $(PARAMS_H) $(TM_P_H) $(TARGET_H) -jump.o : jump.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h hard-reg-set.h $(REGS_H) \ - insn-config.h $(RECOG_H) $(EXPR_H) real.h except.h function.h \ - toplev.h $(INSN_ATTR_H) $(TM_P_H) reload.h $(PREDICT_H) - -simplify-rtx.o : simplify-rtx.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) \ - hard-reg-set.h flags.h real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h \ - output.h function.h $(GGC_H) $(OBSTACK_H) $(TM_P_H) -cselib.o : cselib.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) \ - hard-reg-set.h flags.h real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h \ - output.h function.h cselib.h $(GGC_H) $(OBSTACK_H) $(TM_P_H) -cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) hard-reg-set.h flags.h \ - real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h output.h function.h \ - $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) -gcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) hard-reg-set.h \ - flags.h real.h insn-config.h ggc.h $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) \ - function.h output.h toplev.h $(TM_P_H) $(PARAMS_H) except.h -sibcall.o : sibcall.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) function.h \ - hard-reg-set.h flags.h insn-config.h $(RECOG_H) $(BASIC_BLOCK_H) -resource.o : resource.c $(CONFIG_H) $(RTL_H) hard-reg-set.h $(SYSTEM_H) \ - $(BASIC_BLOCK_H) $(REGS_H) flags.h output.h resource.h function.h toplev.h \ - $(INSN_ATTR_H) except.h $(PARAMS_H) $(TM_P_H) -lcm.o : lcm.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) hard-reg-set.h flags.h \ - real.h insn-config.h $(INSN_ATTR_H) $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) \ - $(TM_P_H) df.h -ssa.o : ssa.c $(CONFIG_H) $(SYSTEM_H) $(REGS_H) varray.h $(EXPR_H) \ - hard-reg-set.h flags.h function.h real.h insn-config.h $(RECOG_H) \ - $(BASIC_BLOCK_H) output.h ssa.h -ssa-dce.o : ssa-dce.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) hard-reg-set.h \ - $(BASIC_BLOCK_H) ssa.h insn-config.h $(RECOG_H) output.h -ssa-ccp.o : ssa-ccp.c $(CONFIG_H) system.h $(RTL_H) hard-reg-set.h \ - $(BASIC_BLOCK_H) ssa.h insn-config.h $(RECOG_H) output.h \ - errors.h $(GGC_H) df.h function.h -df.o : df.c $(CONFIG_H) system.h $(RTL_H) insn-config.h $(RECOG_H) \ - function.h $(REGS_H) $(OBSTACK_H) hard-reg-set.h $(BASIC_BLOCK_H) df.h \ - $(FIBHEAP_H) -conflict.o : conflict.c $(CONFIG_H) $(SYSTEM_H) $(OBSTACK_H) $(HASHTAB_H) \ - $(RTL_H) hard-reg-set.h $(BASIC_BLOCK_H) -profile.o : profile.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - insn-config.h output.h $(REGS_H) $(EXPR_H) function.h \ - gcov-io.h toplev.h $(GGC_H) hard-reg-set.h $(BASIC_BLOCK_H) $(TARGET_H) -loop.o : loop.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h $(LOOP_H) \ - insn-config.h $(REGS_H) hard-reg-set.h $(RECOG_H) $(EXPR_H) \ - real.h $(PREDICT_H) $(BASIC_BLOCK_H) function.h \ - toplev.h varray.h except.h cselib.h $(OPTABS_H) $(TM_P_H) -doloop.o : doloop.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h $(LOOP_H) \ - $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) $(TM_P_H) toplev.h -unroll.o : unroll.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) insn-config.h function.h \ - $(INTEGRATE_H) $(REGS_H) $(RECOG_H) flags.h $(EXPR_H) $(LOOP_H) toplev.h \ - hard-reg-set.h varray.h $(BASIC_BLOCK_H) $(TM_P_H) $(PREDICT_H) -flow.o : flow.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h insn-config.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h $(RECOG_H) \ - function.h except.h $(EXPR_H) ssa.h $(GGC_H) $(TM_P_H) -cfg.o : cfg.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h insn-config.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h $(RECOG_H) \ - function.h except.h $(GGC_H) $(TM_P_H) -cfgrtl.o : cfgrtl.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h insn-config.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h $(RECOG_H) \ - function.h except.h $(GGC_H) $(TM_P_H) -cfganal.o : cfganal.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(BASIC_BLOCK_H) \ - hard-reg-set.h insn-config.h $(RECOG_H) $(GGC_H) $(TM_P_H) -cfgbuild.o : cfgbuild.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h insn-config.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h $(RECOG_H) \ - function.h except.h $(GGC_H) -cfgcleanup.o : cfgcleanup.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TIMEVAR_H)\ - $(BASIC_BLOCK_H) hard-reg-set.h output.h flags.h $(RECOG_H) toplev.h \ - $(GGC_H) insn-config.h cselib.h $(TARGET_H) $(TM_P_H) -cfgloop.o : cfgloop.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \ - $(BASIC_BLOCK_H) hard-reg-set.h -dominance.o : dominance.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) hard-reg-set.h \ - $(BASIC_BLOCK_H) -combine.o : combine.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h function.h \ - insn-config.h $(INSN_ATTR_H) $(REGS_H) $(EXPR_H) \ - $(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h toplev.h $(TM_P_H) -regclass.o : regclass.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) hard-reg-set.h flags.h \ - $(BASIC_BLOCK_H) $(REGS_H) insn-config.h $(RECOG_H) reload.h real.h \ - toplev.h function.h output.h $(GGC_H) $(TM_P_H) $(EXPR_H) -local-alloc.o : local-alloc.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \ - output.h function.h $(INSN_ATTR_H) toplev.h except.h $(TM_P_H) -bitmap.o : bitmap.c $(GCONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h $(BASIC_BLOCK_H) \ - $(REGS_H) - $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) -global.o : global.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h reload.h function.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h insn-config.h output.h toplev.h \ - $(TM_P_H) -varray.o : varray.c $(CONFIG_H) $(SYSTEM_H) varray.h $(RTL_H) $(TREE_H) bitmap.h \ - errors.h -reload.o : reload.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h output.h \ - $(EXPR_H) $(OPTABS_H) reload.h $(RECOG_H) hard-reg-set.h insn-config.h \ - $(REGS_H) function.h real.h toplev.h $(TM_P_H) -reload1.o : reload1.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) real.h flags.h \ - $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) hard-reg-set.h insn-config.h \ - $(BASIC_BLOCK_H) $(RECOG_H) output.h function.h toplev.h cselib.h $(TM_P_H) \ - except.h $(TREE_H) -caller-save.o : caller-save.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h \ - $(REGS_H) hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) function.h \ - $(RECOG_H) reload.h $(EXPR_H) toplev.h $(TM_P_H) -reorg.o : reorg.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) conditions.h hard-reg-set.h \ - $(BASIC_BLOCK_H) $(REGS_H) insn-config.h $(INSN_ATTR_H) except.h \ - $(RECOG_H) function.h flags.h output.h $(EXPR_H) toplev.h $(PARAMS_H) $(TM_P_H) -alias.o : alias.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h hard-reg-set.h \ - $(BASIC_BLOCK_H) $(REGS_H) toplev.h output.h $(EXPR_H) \ - $(GGC_H) function.h cselib.h $(TREE_H) $(TM_P_H) langhooks.h -regmove.o : regmove.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) insn-config.h \ - $(RECOG_H) output.h $(REGS_H) hard-reg-set.h flags.h function.h \ - $(EXPR_H) $(BASIC_BLOCK_H) toplev.h $(TM_P_H) except.h reload.h -haifa-sched.o : haifa-sched.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) sched-int.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h flags.h insn-config.h function.h \ - $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H) $(TARGET_H) -sched-deps.o : sched-deps.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) sched-int.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h flags.h insn-config.h function.h \ - $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h cselib.h $(PARAMS_H) $(TM_P_H) -sched-rgn.o : sched-rgn.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) sched-int.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h flags.h insn-config.h function.h \ - $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H) -sched-ebb.o : sched-ebb.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) sched-int.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h flags.h insn-config.h function.h \ - $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(TM_P_H) -sched-vis.o : sched-vis.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) sched-int.h \ - hard-reg-set.h $(BASIC_BLOCK_H) $(INSN_ATTR_H) $(REGS_H) $(TM_P_H) -final.o : final.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h intl.h \ - $(REGS_H) $(RECOG_H) conditions.h insn-config.h $(INSN_ATTR_H) function.h \ - real.h output.h hard-reg-set.h except.h debug.h xcoffout.h \ - toplev.h reload.h dwarf2out.h $(BASIC_BLOCK_H) $(TM_P_H) $(TARGET_H) $(EXPR_H) -recog.o : recog.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) function.h $(BASIC_BLOCK_H) \ - $(REGS_H) $(RECOG_H) $(EXPR_H) hard-reg-set.h flags.h insn-config.h \ - $(INSN_ATTR_H) real.h toplev.h output.h reload.h $(TM_P_H) -reg-stack.o : reg-stack.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) $(RECOG_H) \ - $(REGS_H) hard-reg-set.h flags.h insn-config.h toplev.h reload.h \ - varray.h function.h $(TM_P_H) -predict.o: predict.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \ - insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h \ - $(RECOG_H) function.h except.h $(EXPR_H) $(TM_P_H) $(PREDICT_H) -lists.o: lists.c $(CONFIG_H) $(SYSTEM_H) toplev.h $(RTL_H) $(GGC_H) -bb-reorder.o : bb-reorder.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) \ - flags.h $(BASIC_BLOCK_H) hard-reg-set.h output.h cfglayout.h $(TARGET_H) -cfglayout.o : cfglayout.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) \ - insn-config.h $(BASIC_BLOCK_H) hard-reg-set.h output.h function.h \ - cfglayout.h -timevar.o : timevar.c $(CONFIG_H) $(SYSTEM_H) $(TIMEVAR_H) flags.h intl.h -regrename.o : regrename.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) insn-config.h \ - $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h $(RECOG_H) function.h \ - resource.h $(OBSTACK_H) flags.h $(TM_P_H) -ifcvt.o : ifcvt.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) toplev.h \ - flags.h insn-config.h function.h $(RECOG_H) $(BASIC_BLOCK_H) $(EXPR_H) \ - output.h except.h $(TM_P_H) -dependence.o : dependence.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) \ - $(C_COMMON_H) flags.h varray.h $(EXPR_H) -params.o : params.c $(CONFIG_H) $(SYSTEM_H) $(PARAMS_H) toplev.h -hooks.o: hooks.c $(CONFIG_H) $(SYSTEM_H) $(HOOKS_H) - -$(out_object_file): $(out_file) $(CONFIG_H) $(TREE_H) $(GGC_H) \ - $(RTL_H) $(REGS_H) hard-reg-set.h real.h insn-config.h conditions.h \ - output.h $(INSN_ATTR_H) $(SYSTEM_H) toplev.h $(TARGET_H) libfuncs.h \ - $(TARGET_DEF_H) function.h sched-int.h $(TM_P_H) $(EXPR_H) $(OPTABS_H) \ - langhooks.h - $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - $(out_file) $(OUTPUT_OPTION) - -# Build auxiliary files that support ecoff format. -mips-tfile: mips-tfile.o version.o $(LIBDEPS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tfile.o version.o $(LIBS) - -mips-tfile.o : mips-tfile.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) version.h - -mips-tdump: mips-tdump.o version.o $(LIBDEPS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tdump.o version.o $(LIBS) - -mips-tdump.o : mips-tdump.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) - -# Build file to support OSF/rose half-pic format. -halfpic.o: halfpic.c $(CONFIG_H) $(RTL_H) $(TREE_H) $(SYSTEM_H) halfpic.h - -# -# Generate header and source files from the machine description, -# and compile them. - -.PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \ - insn-emit.c insn-recog.c insn-extract.c insn-output.c insn-peep.c \ - insn-attr.h insn-attrtab.c - -# The following pair of rules has this effect: -# genconfig is run only if the md has changed since genconfig was last run; -# but the file insn-config.h is touched only when its contents actually change. - -# Each of the other insn-* files is handled by a similar pair of rules. - -# This causes an anomaly in the results of make -n -# because insn-* is older than s-* -# and thus make -n thinks that insn-* will be updated -# and force recompilation of things that depend on it. -# We use move-if-change precisely to avoid such recompilation. -# But there is no way to teach make -n that it will be avoided. - -# Each of the insn-*.[ch] rules has a semicolon at the end, -# for otherwise the system Make on SunOS 4.1 never tries -# to recompile insn-*.o. To avoid problems and extra noise from -# versions of make which don't like empty commands (nothing after the -# trailing `;'), we call true for each. - -insn-config.h: s-config ; @true -s-config : $(md_file) genconfig$(build_exeext) $(srcdir)/move-if-change - ./genconfig$(build_exeext) $(md_file) > tmp-config.h - $(SHELL) $(srcdir)/move-if-change tmp-config.h insn-config.h - $(STAMP) s-config - -insn-flags.h: s-flags ; @true -s-flags : $(md_file) genflags$(build_exeext) $(srcdir)/move-if-change - ./genflags$(build_exeext) $(md_file) > tmp-flags.h - $(SHELL) $(srcdir)/move-if-change tmp-flags.h insn-flags.h - $(STAMP) s-flags - -insn-codes.h: s-codes ; @true -s-codes : $(md_file) gencodes$(build_exeext) $(srcdir)/move-if-change - ./gencodes$(build_exeext) $(md_file) > tmp-codes.h - $(SHELL) $(srcdir)/move-if-change tmp-codes.h insn-codes.h - $(STAMP) s-codes - -insn-constants.h: s-constants ; @true -s-constants : $(md_file) genconstants$(build_exeext) $(srcdir)/move-if-change - ./genconstants$(build_exeext) $(md_file) > tmp-constants.h - $(SHELL) $(srcdir)/move-if-change tmp-constants.h insn-constants.h - $(STAMP) s-constants - -insn-emit.o : insn-emit.c $(CONFIG_H) $(RTL_H) $(EXPR_H) real.h output.h \ - insn-config.h $(OPTABS_H) $(SYSTEM_H) reload.h $(RECOG_H) toplev.h \ - function.h flags.h hard-reg-set.h resource.h $(TM_P_H) - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-emit.c \ - $(OUTPUT_OPTION) - -insn-emit.c: s-emit ; @true -s-emit : $(md_file) genemit$(build_exeext) $(srcdir)/move-if-change - ./genemit$(build_exeext) $(md_file) > tmp-emit.c - $(SHELL) $(srcdir)/move-if-change tmp-emit.c insn-emit.c - $(STAMP) s-emit - -insn-recog.o : insn-recog.c $(CONFIG_H) $(RTL_H) insn-config.h $(RECOG_H) \ - real.h output.h flags.h $(SYSTEM_H) function.h hard-reg-set.h resource.h \ - $(TM_P_H) toplev.h reload.h - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-recog.c \ - $(OUTPUT_OPTION) - -insn-recog.c: s-recog ; @true -s-recog : $(md_file) genrecog$(build_exeext) $(srcdir)/move-if-change - ./genrecog$(build_exeext) $(md_file) > tmp-recog.c - $(SHELL) $(srcdir)/move-if-change tmp-recog.c insn-recog.c - $(STAMP) s-recog - -insn-opinit.o : insn-opinit.c $(CONFIG_H) $(RTL_H) \ - insn-config.h flags.h $(RECOG_H) $(EXPR_H) $(OPTABS_H) reload.h $(SYSTEM_H) - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-opinit.c \ - $(OUTPUT_OPTION) - -insn-opinit.c: s-opinit ; @true -s-opinit : $(md_file) genopinit$(build_exeext) $(srcdir)/move-if-change - ./genopinit$(build_exeext) $(md_file) > tmp-opinit.c - $(SHELL) $(srcdir)/move-if-change tmp-opinit.c insn-opinit.c - $(STAMP) s-opinit - -insn-extract.o : insn-extract.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) toplev.h \ - insn-config.h $(RECOG_H) - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-extract.c \ - $(OUTPUT_OPTION) - -insn-extract.c: s-extract ; @true -s-extract : $(md_file) genextract$(build_exeext) $(srcdir)/move-if-change - ./genextract$(build_exeext) $(md_file) > tmp-extract.c - $(SHELL) $(srcdir)/move-if-change tmp-extract.c insn-extract.c - $(STAMP) s-extract - -insn-peep.o : insn-peep.c $(CONFIG_H) $(RTL_H) $(REGS_H) output.h real.h \ - $(SYSTEM_H) insn-config.h $(RECOG_H) except.h function.h $(TM_P_H) - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-peep.c \ - $(OUTPUT_OPTION) - -insn-peep.c: s-peep ; @true -s-peep : $(md_file) genpeep$(build_exeext) $(srcdir)/move-if-change - ./genpeep$(build_exeext) $(md_file) > tmp-peep.c - $(SHELL) $(srcdir)/move-if-change tmp-peep.c insn-peep.c - $(STAMP) s-peep - -insn-attrtab.o : insn-attrtab.c $(CONFIG_H) $(RTL_H) $(REGS_H) real.h \ - output.h $(INSN_ATTR_H) insn-config.h $(SYSTEM_H) toplev.h $(RECOG_H) \ - $(TM_P_H) flags.h - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-attrtab.c \ - $(OUTPUT_OPTION) - -insn-attr.h: s-attr ; @true -s-attr : $(md_file) genattr$(build_exeext) $(srcdir)/move-if-change - ./genattr$(build_exeext) $(md_file) > tmp-attr.h - $(SHELL) $(srcdir)/move-if-change tmp-attr.h insn-attr.h - $(STAMP) s-attr - -insn-attrtab.c: s-attrtab ; @true -s-attrtab : $(md_file) genattrtab$(build_exeext) $(srcdir)/move-if-change - ./genattrtab$(build_exeext) $(md_file) > tmp-attrtab.c - $(SHELL) $(srcdir)/move-if-change tmp-attrtab.c insn-attrtab.c - $(STAMP) s-attrtab - -insn-output.o : insn-output.c $(CONFIG_H) $(RTL_H) $(GGC_H) $(REGS_H) real.h \ - conditions.h hard-reg-set.h insn-config.h $(INSN_ATTR_H) $(EXPR_H) \ - output.h $(RECOG_H) function.h $(SYSTEM_H) toplev.h flags.h \ - insn-codes.h $(TM_P_H) - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-output.c \ - $(OUTPUT_OPTION) - -insn-output.c: s-output ; @true -s-output : $(md_file) genoutput$(build_exeext) $(srcdir)/move-if-change - ./genoutput$(build_exeext) $(md_file) > tmp-output.c - $(SHELL) $(srcdir)/move-if-change tmp-output.c insn-output.c - $(STAMP) s-output - -genrtl.o : genrtl.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) $(GGC_H) -genrtl.c genrtl.h : s-genrtl - @true # force gnu make to recheck modification times. - -s-genrtl: gengenrtl$(build_exeext) $(srcdir)/move-if-change $(RTL_BASE_H) - ./gengenrtl$(build_exeext) -h > tmp-genrtl.h - $(SHELL) $(srcdir)/move-if-change tmp-genrtl.h genrtl.h - ./gengenrtl$(build_exeext) > tmp-genrtl.c - $(SHELL) $(srcdir)/move-if-change tmp-genrtl.c genrtl.c - $(STAMP) s-genrtl - -tm-preds.h: s-preds; @true - -s-preds: genpreds$(build_exeext) $(srcdir)/move-if-change - ./genpreds$(build_exeext) > tmp-preds.h - $(SHELL) $(srcdir)/move-if-change tmp-preds.h tm-preds.h - $(STAMP) s-preds - -# -# Compile the programs that generate insn-* from the machine description. -# They are compiled with $(HOST_CC), and associated libraries, -# since they need to run on this machine -# even if GCC is being compiled to run on some other machine. - -# $(CONFIG_H) is omitted from the deps of the gen*.o -# because these programs don't really depend on anything -# about the target machine. They do depend on config.h itself, -# since that describes the host machine. - -read-rtl.o: read-rtl.c $(HCONFIG_H) $(SYSTEM_H) $(RTL_H) \ - $(OBSTACK_H) $(HASHTAB_H) - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/read-rtl.c $(OUTPUT_OPTION) - -gensupport.o: gensupport.c $(RTL_H) $(OBSTACK_H) $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/gensupport.c $(OUTPUT_OPTION) - -genconfig$(build_exeext) : genconfig.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genconfig.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genconfig.o : genconfig.c $(RTL_H) $(HCONFIG_H) \ - $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genconfig.c $(OUTPUT_OPTION) - -genflags$(build_exeext) : genflags.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genflags.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genflags.o : genflags.c $(RTL_H) $(OBSTACK_H) $(HCONFIG_H) \ - $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genflags.c $(OUTPUT_OPTION) - -gencodes$(build_exeext) : gencodes.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - gencodes.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -gencodes.o : gencodes.c $(RTL_H) $(HCONFIG_H) \ - $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/gencodes.c $(OUTPUT_OPTION) - -genconstants$(build_exeext) : genconstants.o $(HOST_RTL) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genconstants.o $(HOST_RTL) $(HOST_ERRORS) $(HOST_LIBS) - -genconstants.o : genconstants.c $(RTL_H) $(HCONFIG_H) $(SYSTEM_H) errors.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genconstants.c $(OUTPUT_OPTION) - -genemit$(build_exeext) : genemit.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genemit.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genemit.o : genemit.c $(RTL_H) $(HCONFIG_H) $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genemit.c $(OUTPUT_OPTION) - -genopinit$(build_exeext) : genopinit.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genopinit.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genopinit.o : genopinit.c $(RTL_H) $(HCONFIG_H) \ - $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genopinit.c $(OUTPUT_OPTION) - -genrecog$(build_exeext) : genrecog.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genrecog.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genrecog.o : genrecog.c $(RTL_H) $(HCONFIG_H) \ - $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genrecog.c $(OUTPUT_OPTION) - -genextract$(build_exeext) : genextract.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genextract.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genextract.o : genextract.c $(RTL_H) $(HCONFIG_H) \ - $(SYSTEM_H) insn-config.h errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genextract.c $(OUTPUT_OPTION) - -genpeep$(build_exeext) : genpeep.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genpeep.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genpeep.o : genpeep.c $(RTL_H) $(HCONFIG_H) $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genpeep.c $(OUTPUT_OPTION) - -genattr$(build_exeext) : genattr.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genattr.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genattr.o : genattr.c $(RTL_H) $(HCONFIG_H) $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattr.c $(OUTPUT_OPTION) - -genattrtab$(build_exeext) : genattrtab.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genattrtab.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genattrtab.o : genattrtab.c $(RTL_H) $(OBSTACK_H) $(HCONFIG_H) \ - $(SYSTEM_H) errors.h $(GGC_H) gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattrtab.c $(OUTPUT_OPTION) - -genoutput$(build_exeext) : genoutput.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genoutput.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS) - -genoutput.o : genoutput.c $(RTL_H) $(HCONFIG_H) \ - $(SYSTEM_H) errors.h gensupport.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genoutput.c $(OUTPUT_OPTION) - -gengenrtl$(build_exeext) : gengenrtl.o $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - gengenrtl.o $(HOST_LIBS) - -gengenrtl.o : gengenrtl.c $(RTL_BASE_H) $(HCONFIG_H) $(SYSTEM_H) real.h - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/gengenrtl.c $(OUTPUT_OPTION) - -genpreds$(build_exeext) : genpreds.o $(HOST_LIBDEPS) - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - genpreds.o $(HOST_LIBS) - -genpreds.o : genpreds.c $(RTL_BASE_H) $(HCONFIG_H) $(SYSTEM_H) - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genpreds.c $(OUTPUT_OPTION) - -# -# Compile the libraries to be used by gen*. -# If we are not cross-building, gen* use the same .o's that cc1 will use, -# and HOST_PREFIX_1 is `loser-', just to ensure these rules don't conflict -# with the rules for rtl.o, etc. -$(HOST_PREFIX_1)rtl.o: $(srcdir)/rtl.c $(HCONFIG_H) $(SYSTEM_H) $(RTL_H) \ - real.h $(GGC_H) errors.h - rm -f $(HOST_PREFIX)rtl.c - sed -e 's/config[.]h/hconfig.h/' $(srcdir)/rtl.c > $(HOST_PREFIX)rtl.c - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)rtl.c $(OUTPUT_OPTION) - -$(HOST_PREFIX_1)print-rtl.o: $(srcdir)/print-rtl.c $(HCONFIG_H) \ - $(RTL_H) $(TREE_H) hard-reg-set.h $(BASIC_BLOCK_H) - rm -f $(HOST_PREFIX)print-rtl.c - sed -e 's/config[.]h/hconfig.h/' $(srcdir)/print-rtl.c > $(HOST_PREFIX)print-rtl.c - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)print-rtl.c $(OUTPUT_OPTION) - -$(HOST_PREFIX_1)bitmap.o: $(srcdir)/bitmap.c $(HCONFIG_H) $(SYSTEM_H) $(RTL_H) \ - flags.h $(BASIC_BLOCK_H) $(REGS_H) - rm -f $(HOST_PREFIX)bitmap.c - sed -e 's/config[.]h/hconfig.h/' $(srcdir)/bitmap.c > $(HOST_PREFIX)bitmap.c - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)bitmap.c $(OUTPUT_OPTION) - -$(HOST_PREFIX_1)errors.o: errors.c $(HCONFIG_H) $(SYSTEM_H) errors.h - rm -f $(HOST_PREFIX)errors.c - sed -e 's/config[.]h/hconfig.h/' $(srcdir)/errors.c > $(HOST_PREFIX)errors.c - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)errors.c $(OUTPUT_OPTION) - -$(HOST_PREFIX_1)ggc-none.o: ggc-none.c $(HCONFIG_H) $(SYSTEM_H) $(GCC_H) - rm -f $(HOST_PREFIX)ggc-none.c - sed -e 's/config[.]h/hconfig.h/' $(srcdir)/ggc-none.c > $(HOST_PREFIX)ggc-none.c - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)ggc-none.c $(OUTPUT_OPTION) - -# -# Remake internationalization support. -intl.o: intl.c $(CONFIG_H) system.h intl.h Makefile - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - -DLOCALEDIR=\"$(localedir)\" \ - -c $(srcdir)/intl.c $(OUTPUT_OPTION) - -$(top_builddir)/intl/libintl.a: intl.all - -intl.all intl.install intl.uninstall \ - intl.mostlyclean intl.clean intl.distclean intl.maintainer-clean: - @for d in $(INTL_SUBDIRS); do \ - target=`expr $@ : 'intl.\(.*\)'` && \ - echo "(cd $$d && $(MAKE) $$target)" && \ - (cd $$d && AWK='$(AWK)' $(MAKE) $(SUBDIR_FLAGS_TO_PASS) $$target); \ - if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \ - done -# intl.all and intl.install need config.h to exist, and the files it includes. -# (FIXME: intl/*.c shouldn't need to see insn-foo.h!) -intl.all intl.install: config.h insn-flags.h insn-constants.h - -# Make-lang.in should add dependencies of po-generated on any generated -# files which need to be scanned by gettext (usually Yacc-generated parsers). -po-generated: c-parse.c tradcif.c - -# -# Remake cpp and protoize. - -PREPROCESSOR_DEFINES = \ - -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ - -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ - -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_alias)\" \ - -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ - -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ - -DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \ - -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" - -LIBCPP_OBJS = cpplib.o cpplex.o cppmacro.o cppexp.o cppfiles.o \ - cpphash.o cpperror.o cppinit.o cppdefault.o \ - hashtable.o line-map.o mkdeps.o prefix.o version.o mbchar.o - -LIBCPP_DEPS = $(CPPLIB_H) cpphash.h line-map.h hashtable.h intl.h \ - $(OBSTACK_H) $(SYSTEM_H) - -# Most of the other archives built/used by this makefile are for -# targets. This one is strictly for the host. -libcpp.a: $(LIBCPP_OBJS) - -rm -rf libcpp.a - $(AR) $(AR_FLAGS) libcpp.a $(LIBCPP_OBJS) - -$(RANLIB) libcpp.a - -cpp0$(exeext): cppmain.o intl.o libcpp.a $(LIBDEPS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cpp0$(exeext) cppmain.o \ - intl.o libcpp.a $(LIBS) - -cppmain.o: cppmain.c $(CONFIG_H) $(CPPLIB_H) intl.h $(SYSTEM_H) - -cpperror.o: cpperror.c $(CONFIG_H) $(LIBCPP_DEPS) -cppexp.o: cppexp.c $(CONFIG_H) $(LIBCPP_DEPS) -cpplex.o: cpplex.c $(CONFIG_H) $(LIBCPP_DEPS) mbchar.h -cppmacro.o: cppmacro.c $(CONFIG_H) $(LIBCPP_DEPS) -cpplib.o: cpplib.c $(CONFIG_H) $(LIBCPP_DEPS) -cpphash.o: cpphash.c $(CONFIG_H) $(LIBCPP_DEPS) -cppfiles.o: cppfiles.c $(CONFIG_H) $(LIBCPP_DEPS) $(SPLAY_TREE_H) mkdeps.h -cppinit.o: cppinit.c $(CONFIG_H) $(LIBCPP_DEPS) cppdefault.h \ - mkdeps.h prefix.h version.h except.h - -cppdefault.o: cppdefault.c $(CONFIG_H) $(SYSTEM_H) cppdefault.h Makefile - $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - $(PREPROCESSOR_DEFINES) \ - -c $(srcdir)/cppdefault.c $(OUTPUT_OPTION) - -mkdeps.o: mkdeps.c $(CONFIG_H) $(SYSTEM_H) mkdeps.h - -# The traditional mode preprocessor, a separate program for ease of -# maintenance. Some code is shared with the ISO-C cpp. -tradcpp0$(exeext): tradcpp.o tradcif.o cppdefault.o version.o intl.o \ - mkdeps.o $(LIBDEPS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o tradcpp0$(exeext) \ - tradcpp.o tradcif.o mkdeps.o cppdefault.o version.o intl.o $(LIBS) - -tradcpp.o: tradcpp.c $(CONFIG_H) $(SYSTEM_H) version.h cppdefault.h tradcpp.h -tradcif.o: $(srcdir)/tradcif.c $(CONFIG_H) $(SYSTEM_H) tradcpp.h - -$(srcdir)/tradcif.c: $(srcdir)/tradcif.y - (cd $(srcdir) && $(BISON) $(BISONFLAGS) -o tr$$$$.c tradcif.y && \ - mv -f tr$$$$.c tradcif.c) - -# Note for the stamp targets, we run the program `true' instead of -# having an empty command (nothing following the semicolon). - -proto: config.status protoize$(exeext) unprotoize$(exeext) SYSCALLS.c.X - -PROTO_OBJS = intl.o version.o cppdefault.o - -protoize$(exeext): protoize.o $(PROTO_OBJS) $(LIBDEPS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ protoize.o $(PROTO_OBJS) $(LIBS) - -unprotoize$(exeext): unprotoize.o $(PROTO_OBJS) $(LIBDEPS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ unprotoize.o $(PROTO_OBJS) $(LIBS) - -protoize.o: protoize.c $(srcdir)/../include/getopt.h $(CONFIG_H) $(SYSTEM_H) \ - Makefile version.h - (SHLIB_LINK='$(SHLIB_LINK)' \ - SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \ - $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - $(DRIVER_DEFINES) \ - $(srcdir)/protoize.c $(OUTPUT_OPTION)) - -unprotoize.o: protoize.c $(srcdir)/../include/getopt.h \ - $(CONFIG_H) $(SYSTEM_H) Makefile version.h - (SHLIB_LINK='$(SHLIB_LINK)' \ - SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \ - $(CC) -c -DUNPROTOIZE $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - $(DRIVER_DEFINES) \ - $(srcdir)/protoize.c $(OUTPUT_OPTION)) - -# This info describes the target machine, so compile with GCC just built. -SYSCALLS.c.X: $(srcdir)/sys-types.h $(srcdir)/sys-protos.h $(GCC_PASSES) \ - stmp-int-hdrs - -rm -f SYSCALLS.c tmp-SYSCALLS.s - sed -e s/TARGET_GETGROUPS_T/$(TARGET_GETGROUPS_T)/ \ - $(srcdir)/sys-types.h $(srcdir)/sys-protos.h > SYSCALLS.c - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - -aux-info $@ -S -o tmp-SYSCALLS.s SYSCALLS.c - -rm -f SYSCALLS.c tmp-SYSCALLS.s - - -test-protoize-simple: ./protoize ./unprotoize $(GCC_PASSES) - -rm -f tmp-proto.[cso] - cp $(srcdir)/protoize.c tmp-proto.c - chmod u+w tmp-proto.c - ./protoize -N -B ./ -x getopt.h -c "-B./ -Wall -Wwrite-strings \ - $(GCC_CFLAGS) $(INCLUDES) \ - -DGCC_INCLUDE_DIR=0 \ - -DGPLUSPLUS_INCLUDE_DIR=0 \ - -DCROSS_INCLUDE_DIR=0 \ - -DTOOL_INCLUDE_DIR=0 \ - -DSTANDARD_EXEC_PREFIX=0 \ - -DDEFAULT_TARGET_MACHINE=0 \ - -DDEFAULT_TARGET_VERSION=0" tmp-proto.c - @echo '**********' Expect 400 lines of differences. - -diff $(srcdir)/protoize.c tmp-proto.c > tmp-proto.diff - -wc -l tmp-proto.diff - ./unprotoize -N -x getopt.h -c "-B./ -Wall -Wwrite-strings \ - $(GCC_CFLAGS) $(INCLUDES) \ - -DGCC_INCLUDE_DIR=0 \ - -DGPLUSPLUS_INCLUDE_DIR=0 \ - -DCROSS_INCLUDE_DIR=0 \ - -DTOOL_INCLUDE_DIR=0 \ - -DSTANDARD_EXEC_PREFIX=0 \ - -DDEFAULT_TARGET_MACHINE=0 \ - -DDEFAULT_TARGET_VERSION=0" tmp-proto.c - @echo Expect zero differences. - diff $(srcdir)/protoize.c tmp-proto.c | cat - -rm -f tmp-proto.[cs] tmp-proto$(objext) - -gcov.o: gcov.c gcov-io.h intl.h $(SYSTEM_H) $(CONFIG_H) - -# Only one of 'gcov' or 'gcov.exe' is actually built, depending -# upon whether $(exeext) is empty or not. -GCOV_OBJS = gcov.o intl.o version.o -gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@ -# -# Build the include directory. The stamp files are stmp-* rather than -# s-* so that mostlyclean does not force the include directory to -# be rebuilt. - -# Build the include directory including float.h (which no longer depends upon -# enquire). -stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) xlimits.h -# Copy in the headers provided with gcc. -# The sed command gets just the last file name component; -# this is necessary because VPATH could add a dirname. -# Using basename would be simpler, but some systems don't have it. -# The touch command is here to workaround an AIX/Linux NFS bug. - -if [ -d include ] ; then true; else mkdir include; chmod a+rx include; fi - for file in .. $(USER_H); do \ - if [ X$$file != X.. ]; then \ - realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \ - $(STAMP) include/$$realfile; \ - rm -f include/$$realfile; \ - cp $$file include; \ - chmod a+r include/$$realfile; \ - fi; \ - done - rm -f include/limits.h - cp xlimits.h include/limits.h - chmod a+r include/limits.h - rm -f include/float.h - if [ x$(FLOAT_H) != xMakefile.in ]; then \ - cp $(srcdir)/config/$(FLOAT_H) include/float.h && \ - chmod a+r include/float.h; \ - else :; fi -# Install the README - rm -f include/README - cp $(srcdir)/README-fixinc include/README - chmod a+r include/README - $(STAMP) $@ - -# fixinc.sh depends on this, not on specs directly. -# The idea is to make sure specs gets built, but not rerun fixinc.sh -# after each stage just because specs' mtime has changed. -specs.ready: specs - -if [ -f specs.ready ] ; then \ +# This rule is used to configure the modules which are built with the +# native tools. +.PHONY: $(CONFIGURE_BUILD_MODULES) +$(CONFIGURE_BUILD_MODULES): + @dir=`echo $@ | sed -e 's/configure-build-//'`; \ + if [ ! -d $(BUILD_SUBDIR) ]; then \ + true; \ + elif [ -f $(BUILD_SUBDIR)/$${dir}/Makefile ] ; then \ + true; \ + elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \ + if [ -d $(srcdir)/$${dir} ]; then \ + [ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + AR="$(AR_FOR_BUILD)"; export AR; \ + AS="$(AS_FOR_BUILD)"; export AS; \ + CC="$(CC_FOR_BUILD)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CXX="$(CXX_FOR_BUILD)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + LD="$(LD_FOR_BUILD)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ + NM="$(NM_FOR_BUILD)"; export NM; \ + RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \ + echo Configuring in $(BUILD_SUBDIR)/$${dir}; \ + cd "$(BUILD_SUBDIR)/$${dir}" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(BUILD_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(BUILD_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/$${dir}"; \ + libsrcdir="$$s/$${dir}"; \ + fi; \ + if [ -f $${libsrcdir}/configure ] ; then \ + rm -f no-such-file skip-this-dir; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(BUILD_CONFIGARGS) $${srcdiroption} \ + --with-build-subdir="$(BUILD_SUBDIR)"; \ + else \ + rm -f no-such-file skip-this-dir; \ + CONFIG_SITE=no-such-file $(SHELL) $$s/configure \ + $(BUILD_CONFIGARGS) $${srcdiroption} \ + --with-build-subdir="$(BUILD_SUBDIR)"; \ + fi || exit 1; \ + if [ -f skip-this-dir ] ; then \ + sh skip-this-dir; \ + rm -f skip-this-dir; \ + cd ..; rmdir $${dir} || true; \ + else \ + true; \ + fi; \ + else \ + true; \ + fi; \ else \ - $(STAMP) specs.ready; \ + true; \ fi -FIXINCSRCDIR=$(srcdir)/fixinc -fixinc.sh: $(FIXINCSRCDIR)/mkfixinc.sh $(FIXINCSRCDIR)/fixincl.c \ - $(FIXINCSRCDIR)/procopen.c $(FIXINCSRCDIR)/gnu-regex.c \ - $(FIXINCSRCDIR)/server.c $(FIXINCSRCDIR)/gnu-regex.h \ - $(FIXINCSRCDIR)/server.h $(FIXINCSRCDIR)/inclhack.def specs.ready - (MAKE="$(MAKE)"; srcdir=`cd $(srcdir)/fixinc && pwd` ; \ - CC="$(HOST_CC)"; CFLAGS="$(HOST_CFLAGS)"; LDFLAGS="$(HOST_LDFLAGS)"; \ - WARN_CFLAGS="$(WARN_CFLAGS)"; \ - export MAKE srcdir CC CFLAGS LDFLAGS WARN_CFLAGS; cd ./fixinc && \ - $(SHELL) $${srcdir}/mkfixinc.sh $(build_canonical) $(target)) - -# Build fixed copies of system files. -stmp-fixinc: fixinc.sh gsyslimits.h - rm -rf include; mkdir include - -chmod a+rx include - (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); pwd`; \ - SHELL='$(SHELL)' ;\ - export TARGET_MACHINE srcdir SHELL ; \ - $(SHELL) ./fixinc.sh `pwd`/include $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); \ - rm -f include/syslimits.h; \ - if [ -f include/limits.h ]; then \ - mv include/limits.h include/syslimits.h; \ +# This rule is used to build the modules which use FLAGS_TO_PASS. To +# build a target all-X means to cd to X and make all. +# +# all-gui, and all-libproc are handled specially because +# they are still experimental, and if they fail to build, that +# shouldn't stop "make all". +.PHONY: $(ALL_MODULES) all-gui all-libproc +$(ALL_MODULES) all-gui all-libproc: + @dir=`echo $@ | sed -e 's/all-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \ else \ - cp $(srcdir)/gsyslimits.h include/syslimits.h; \ - fi; \ - chmod a+r include/syslimits.h) -# If $(SYSTEM_HEADER_DIR) is $(build_tooldir)/sys-include, and -# that directory exists, then make sure that $(libsubdir) exists. -# This is because cpp is compiled to find $(gcc_tooldir)/include via -# $(libsubdir)/$(unlibsubdir), which will only work if $(libsubdir) -# exists. -# ??? Better would be to use -isystem $(build_tooldir)/sys-include, -# but fixincludes does not take such arguments. - if [ "$(SYSTEM_HEADER_DIR)" = "$(build_tooldir)/sys-include" ] \ - && [ -d $(build_tooldir)/sys-include ]; then \ - if [ -d $(libdir) ] ; then true ; else mkdir $(libdir) ; fi; \ - if [ -d $(libdir)/gcc-lib ] ; then true ; else mkdir $(libdir)/gcc-lib; fi; \ - if [ -d $(libdir)/gcc-lib/$(target_alias) ] ; then true ; else mkdir $(libdir)/gcc-lib/$(target_alias) ; fi; \ - if [ -d $(libdir)/gcc-lib/$(target_alias)/$(version) ] ; then true ; else mkdir $(libdir)/gcc-lib/$(target_alias)/$(version) ; fi; \ - else true; fi - $(STAMP) stmp-fixinc - -# Files related to the fixproto script. -# gen-protos and fix-header are compiled with HOST_CC, but they are only -# used in native and host-x-target builds, so it's safe to link them with -# libiberty.a. - -deduced.h: $(GCC_PASSES) $(srcdir)/scan-types.sh stmp-int-hdrs - if [ -d $(SYSTEM_HEADER_DIR) ]; \ - then \ - CC="$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -I. -I$(srcdir) -isystem include -isystem ${SYSTEM_HEADER_DIR}"; \ - export CC; \ - $(SHELL) $(srcdir)/scan-types.sh "$(srcdir)" >tmp-deduced.h; \ - mv tmp-deduced.h deduced.h; \ + true; \ + fi + +# These rules are used to check the modules which use FLAGS_TO_PASS. +# To build a target check-X means to cd to X and make check. Some +# modules are only tested in a native toolchain. + +.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) +$(NATIVE_CHECK_MODULES): + @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + dir=`echo $@ | sed -e 's/check-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ + else \ + true; \ + fi; \ + fi + +$(CROSS_CHECK_MODULES): + @dir=`echo $@ | sed -e 's/check-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ + else \ + true; \ + fi + +# This rule is used to install the modules which use FLAGS_TO_PASS. +# To build a target install-X means to cd to X and make install. +.PHONY: $(INSTALL_MODULES) +$(INSTALL_MODULES): installdirs + @dir=`echo $@ | sed -e 's/install-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ else \ - $(STAMP) deduced.h; \ + true; \ fi -GEN_PROTOS_OBJS = gen-protos.o scan.o -gen-protos$(build_exeext): $(GEN_PROTOS_OBJS) - ${HOST_CC} $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ - $(GEN_PROTOS_OBJS) $(HOST_LIBS) - -gen-protos.o: gen-protos.c scan.h $(HCONFIG_H) $(SYSTEM_H) - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/gen-protos.c $(OUTPUT_OPTION) - -scan.o: scan.c scan.h $(HCONFIG_H) $(SYSTEM_H) - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/scan.c $(OUTPUT_OPTION) - -xsys-protos.h: $(GCC_PASSES) $(srcdir)/sys-protos.h deduced.h gen-protos$(build_exeext) Makefile - sed -e s/TARGET_GETGROUPS_T/$(TARGET_GETGROUPS_T)/ \ - deduced.h $(srcdir)/sys-protos.h > tmp-fixtmp.c - mv tmp-fixtmp.c fixtmp.c - $(GCC_FOR_TARGET) fixtmp.c -w -U__SIZE_TYPE__ -U__PTRDIFF_TYPE__ -U__WCHAR_TYPE__ -E \ - | sed -e 's/ / /g' -e 's/ *(/ (/g' -e 's/ [ ]*/ /g' -e 's/( )/()/' \ - | ./gen-protos >xsys-protos.hT - mv xsys-protos.hT xsys-protos.h - rm -rf fixtmp.c - -# This is nominally a 'build' program, but it's run only when host==build, -# so we can (indeed, must) use $(LIBDEPS) and $(LIBS). -fix-header$(build_exeext): fix-header.o scan-decls.o scan.o xsys-protos.h \ - $(LIBDEPS) libcpp.a - $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ fix-header.o \ - scan-decls.o scan.o libcpp.a $(LIBS) - -fix-header.o: fix-header.c $(OBSTACK_H) scan.h \ - xsys-protos.h $(HCONFIG_H) $(SYSTEM_H) $(CPPLIB_H) - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/fix-header.c $(OUTPUT_OPTION) - -scan-decls.o: scan-decls.c scan.h $(CPPLIB_H) $(HCONFIG_H) $(SYSTEM_H) - $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/scan-decls.c $(OUTPUT_OPTION) - -# stmp-fixproto depends on this, not on fix-header directly. -# The idea is to make sure fix-header gets built, -# but not rerun fixproto after each stage -# just because fix-header's mtime has changed. -fixhdr.ready: fix-header$(build_exeext) - -if [ -f fixhdr.ready ] ; then \ +# This rule is used to configure the modules which are built with the +# target tools. +.PHONY: $(CONFIGURE_TARGET_MODULES) +$(CONFIGURE_TARGET_MODULES): + @dir=`echo $@ | sed -e 's/configure-target-//'`; \ + if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \ + r=`pwd`; export r; \ + $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \ + if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \ + if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \ + if cmp $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out > /dev/null; then \ + rm -f $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \ + else \ + echo "Multilibs changed for $${dir}, reconfiguring"; \ + rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/Makefile; \ + mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ + fi; \ + else \ + mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ + fi; \ + fi; \ + fi; exit 0 # break command into two pieces + @dir=`echo $@ | sed -e 's/configure-target-//'`; \ + if [ ! -d $(TARGET_SUBDIR) ]; then \ + true; \ + elif [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + true; \ + elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \ + if [ -d $(srcdir)/$${dir} ]; then \ + [ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/$${dir}; \ + cd "$(TARGET_SUBDIR)/$${dir}" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/$${dir}"; \ + libsrcdir="$$s/$${dir}"; \ + fi; \ + if [ -f $${libsrcdir}/configure ] ; then \ + rm -f no-such-file skip-this-dir; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)"; \ + else \ + rm -f no-such-file skip-this-dir; \ + CONFIG_SITE=no-such-file $(SHELL) $$s/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)"; \ + fi || exit 1; \ + if [ -f skip-this-dir ] ; then \ + sh skip-this-dir; \ + rm -f skip-this-dir; \ + cd ..; rmdir $${dir} || true; \ + else \ + true; \ + fi; \ + else \ + true; \ + fi; \ else \ - $(STAMP) fixhdr.ready; \ + true; \ fi -# stmp-int-headers is to make sure fixincludes has already finished. -# The if statement is so that we don't run fixproto a second time -# if it has already been run on the files in `include'. -stmp-fixproto: fixhdr.ready fixproto stmp-int-hdrs - if [ -f include/fixed ] ; then true; \ +# This rule is used to build the modules which use TARGET_FLAGS_TO_PASS. +# To build a target all-X means to cd to X and make all. +.PHONY: $(ALL_TARGET_MODULES) +$(ALL_TARGET_MODULES): + @dir=`echo $@ | sed -e 's/all-target-//'`; \ + if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/$${dir}; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \ else \ - : This line works around a 'make' bug in BSDI 1.1.; \ - FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"; export FIXPROTO_DEFINES; \ - mkinstalldirs="$(SHELL) $(srcdir)/mkinstalldirs"; \ - export mkinstalldirs; \ - if [ -d $(SYSTEM_HEADER_DIR) ] ; then \ - $(SHELL) ${srcdir}/fixproto include include $(SYSTEM_HEADER_DIR); \ - if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \ - else true; fi; \ - $(STAMP) include/fixed; \ + true; \ fi - $(STAMP) stmp-fixproto -# -# Remake the info files. - -docdir = $(srcdir)/doc - -doc: $(BUILD_INFO) $(GENERATED_MANPAGES) gccbug -info: $(docdir)/cpp.info $(docdir)/gcc.info $(docdir)/gccint.info lang.info $(docdir)/cppinternals.info - -$(docdir)/cpp.info: $(docdir)/cpp.texi $(docdir)/include/fdl.texi \ - $(docdir)/cppenv.texi $(docdir)/cppopts.texi - cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -I doc -I doc/include -o doc/cpp.info doc/cpp.texi - -$(docdir)/gcc.info: $(docdir)/gcc.texi $(docdir)/include/gcc-common.texi \ - $(docdir)/frontends.texi $(docdir)/standards.texi \ - $(docdir)/invoke.texi $(docdir)/extend.texi $(docdir)/md.texi \ - $(docdir)/objc.texi $(docdir)/gcov.texi $(docdir)/trouble.texi \ - $(docdir)/bugreport.texi $(docdir)/service.texi \ - $(docdir)/contribute.texi $(docdir)/vms.texi $(docdir)/compat.texi \ - $(docdir)/include/funding.texi $(docdir)/gnu.texi \ - $(docdir)/include/gpl.texi $(docdir)/include/fdl.texi \ - $(docdir)/contrib.texi $(docdir)/cppenv.texi $(docdir)/cppopts.texi - cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -I doc -I doc/include -o doc/gcc.info doc/gcc.texi - -$(docdir)/gccint.info: $(docdir)/gccint.texi \ - $(docdir)/include/gcc-common.texi $(docdir)/contribute.texi \ - $(docdir)/makefile.texi $(docdir)/configterms.texi \ - $(docdir)/portability.texi $(docdir)/interface.texi \ - $(docdir)/passes.texi $(docdir)/c-tree.texi \ - $(docdir)/rtl.texi $(docdir)/md.texi $(docdir)/tm.texi \ - $(docdir)/hostconfig.texi $(docdir)/fragments.texi \ - $(docdir)/configfiles.texi $(docdir)/collect2.texi \ - $(docdir)/headerdirs.texi $(docdir)/include/funding.texi \ - $(docdir)/gnu.texi $(docdir)/include/gpl.texi \ - $(docdir)/include/fdl.texi $(docdir)/contrib.texi \ - $(docdir)/languages.texi $(docdir)/sourcebuild.texi - cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -I doc -I doc/include -o doc/gccint.info doc/gccint.texi - -$(docdir)/cppinternals.info: $(docdir)/cppinternals.texi - cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -I doc -I doc/include -o doc/cppinternals.info \ - doc/cppinternals.texi - -dvi: gcc.dvi gccint.dvi cpp.dvi lang.dvi cppinternals.dvi - -# This works with GNU Make's default rule. -cpp.dvi: $(docdir)/cpp.texi $(docdir)/include/fdl.texi \ - $(docdir)/cppenv.texi $(docdir)/cppopts.texi - $(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/cpp.texi - -gcc.dvi: $(docdir)/gcc.texi $(docdir)/include/gcc-common.texi \ - $(docdir)/frontends.texi $(docdir)/standards.texi \ - $(docdir)/invoke.texi $(docdir)/extend.texi $(docdir)/md.texi \ - $(docdir)/objc.texi $(docdir)/gcov.texi $(docdir)/trouble.texi \ - $(docdir)/bugreport.texi $(docdir)/service.texi \ - $(docdir)/contribute.texi $(docdir)/vms.texi \ - $(docdir)/include/funding.texi $(docdir)/gnu.texi \ - $(docdir)/include/gpl.texi $(docdir)/include/fdl.texi \ - $(docdir)/contrib.texi $(docdir)/cppenv.texi $(docdir)/cppopts.texi - $(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/gcc.texi - -gccint.dvi: $(docdir)/gccint.texi \ - $(docdir)/include/gcc-common.texi $(docdir)/contribute.texi \ - $(docdir)/makefile.texi $(docdir)/configterms.texi \ - $(docdir)/portability.texi $(docdir)/interface.texi \ - $(docdir)/passes.texi $(docdir)/c-tree.texi \ - $(docdir)/rtl.texi $(docdir)/md.texi $(docdir)/tm.texi \ - $(docdir)/hostconfig.texi $(docdir)/fragments.texi \ - $(docdir)/configfiles.texi $(docdir)/collect2.texi \ - $(docdir)/headerdirs.texi $(docdir)/include/funding.texi \ - $(docdir)/gnu.texi $(docdir)/include/gpl.texi \ - $(docdir)/include/fdl.texi $(docdir)/contrib.texi \ - $(docdir)/languages.texi $(docdir)/sourcebuild.texi - $(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/gccint.texi - -cppinternals.dvi: $(docdir)/cppinternals.texi - $(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/cppinternals.texi - -generated-manpages: $(docdir)/gcov.1 $(docdir)/cpp.1 $(docdir)/gcc.1 \ - $(docdir)/gfdl.7 $(docdir)/gpl.7 $(docdir)/fsf-funding.7 \ - lang.generated-manpages - -$(docdir)/gcov.1: $(docdir)/gcov.texi - $(STAMP) $(docdir)/gcov.1 - -$(TEXI2POD) $(docdir)/gcov.texi > gcov.pod - -($(POD2MAN) --section=1 gcov.pod > $(docdir)/gcov.1.T$$$$ && \ - mv -f $(docdir)/gcov.1.T$$$$ $(docdir)/gcov.1) || \ - (rm -f $(docdir)/gcov.1.T$$$$ && exit 1) - -rm -f gcov.pod - -$(docdir)/cpp.1: $(docdir)/cpp.texi $(docdir)/cppenv.texi \ - $(docdir)/cppopts.texi - $(STAMP) $(docdir)/cpp.1 - -$(TEXI2POD) $(docdir)/cpp.texi > cpp.pod - -($(POD2MAN) --section=1 cpp.pod > $(docdir)/cpp.1.T$$$$ && \ - mv -f $(docdir)/cpp.1.T$$$$ $(docdir)/cpp.1) || \ - (rm -f $(docdir)/cpp.1.T$$$$ && exit 1) - -rm -f cpp.pod - -$(docdir)/gcc.1: $(docdir)/invoke.texi $(docdir)/cppenv.texi \ - $(docdir)/cppopts.texi - $(STAMP) $(docdir)/gcc.1 - -$(TEXI2POD) $(docdir)/invoke.texi > gcc.pod - -($(POD2MAN) --section=1 gcc.pod > $(docdir)/gcc.1.T$$$$ && \ - mv -f $(docdir)/gcc.1.T$$$$ $(docdir)/gcc.1) || \ - (rm -f $(docdir)/gcc.1.T$$$$ && exit 1) - -rm -f gcc.pod - -$(docdir)/gfdl.7: $(docdir)/include/fdl.texi - $(STAMP) $(docdir)/gfdl.7 - -$(TEXI2POD) $(docdir)/include/fdl.texi > gfdl.pod - -($(POD2MAN) --section=7 gfdl.pod > $(docdir)/gfdl.7.T$$$$ && \ - mv -f $(docdir)/gfdl.7.T$$$$ $(docdir)/gfdl.7) || \ - (rm -f $(docdir)/gfdl.7.T$$$$ && exit 1) - -rm -f gfdl.pod - -$(docdir)/gpl.7: $(docdir)/include/gpl.texi - $(STAMP) $(docdir)/gpl.7 - -$(TEXI2POD) $(docdir)/include/gpl.texi > gpl.pod - -($(POD2MAN) --section=7 gpl.pod > $(docdir)/gpl.7.T$$$$ && \ - mv -f $(docdir)/gpl.7.T$$$$ $(docdir)/gpl.7) || \ - (rm -f $(docdir)/gpl.7.T$$$$ && exit 1) - -rm -f gpl.pod - -$(docdir)/fsf-funding.7: $(docdir)/include/funding.texi - $(STAMP) $(docdir)/fsf-funding.7 - -$(TEXI2POD) $(docdir)/include/funding.texi > fsf-funding.pod - -($(POD2MAN) --section=7 fsf-funding.pod \ - > $(docdir)/fsf-funding.7.T$$$$ && \ - mv -f $(docdir)/fsf-funding.7.T$$$$ $(docdir)/fsf-funding.7) || \ - (rm -f $(docdir)/fsf-funding.7.T$$$$ && exit 1) - -rm -f fsf-funding.pod - -# -# Deletion of files made during compilation. -# There are four levels of this: -# `mostlyclean', `clean', `distclean' and `maintainer-clean'. -# `mostlyclean' is useful while working on a particular type of machine. -# It deletes most, but not all, of the files made by compilation. -# It does not delete libgcc.a or its parts, so it won't have to be recompiled. -# `clean' deletes everything made by running `make all'. -# `distclean' also deletes the files made by config. -# `maintainer-clean' also deletes everything that could be regenerated -# automatically, except for `configure'. -# We remove as much from the language subdirectories as we can -# (less duplicated code). - -INTL_MOSTLYCLEAN = intl.mostlyclean -mostlyclean: $(INTL_MOSTLYCLEAN) lang.mostlyclean - -rm -f $(STAGESTUFF) - -rm -rf libgcc -# Delete the temporary source copies for cross compilation. - -rm -f $(HOST_PREFIX_1)rtl.c $(HOST_PREFIX_1)print-rtl.c - -rm -f $(HOST_PREFIX_1)bitmap.c $(HOST_PREFIX_1)errors.c - -rm -f $(HOST_PREFIX_1)ggc-none.c -# Delete the temp files made in the course of building libgcc.a. - -rm -f xlimits.h -# Delete other built files. - -rm -f t-float.h-cross xsys-protos.hT -# Delete the stamp and temporary files. - -rm -f s-* tmp-* stamp-* stmp-* - -rm -f */stamp-* */tmp-* -# Delete debugging dump files. - -rm -f *.[0-9][0-9].* */*.[0-9][0-9].* -# Delete some files made during installation. - -rm -f specs float.h-* enquire SYSCALLS.c.X SYSCALLS.c - -rm -f collect collect2 mips-tfile mips-tdump -# Delete files generated for fixproto - -rm -rf fix-header$(build_exeext) xsys-protos.h deduced.h tmp-deduced.h \ - gen-protos$(build_exeext) fixproto.list fixtmp.* fixhdr.ready -# Delete files generated for fixincl - -rm -rf fixincl fixinc.sh specs.ready - (cd fixinc && $(MAKE) clean) -# Delete unwanted output files from TeX. - -rm -f *.toc *.log *.vr *.fn *.cp *.tp *.ky *.pg - -rm -f */*.toc */*.log */*.vr */*.fn */*.cp */*.tp */*.ky */*.pg -# Delete sorted indices we don't actually use. - -rm -f gcc.vrs gcc.kys gcc.tps gcc.pgs gcc.fns -# Delete core dumps. - -rm -f core */core - -# Delete all files made by compilation -# that don't exist in the distribution. -INTL_CLEAN = intl.clean -clean: mostlyclean $(INTL_CLEAN) lang.clean - -rm -f libgcc.a libgcc_eh.a libgcc_s$(SHLIB_EXT) libgcc_s$(SHLIB_EXT).1 - -rm -f config.h tconfig.h hconfig.h tm_p.h - -rm -f cs-* - -rm -rf libgcc - -rm -f *.dvi - -rm -f */*.dvi -# Delete the include directory. - -rm -rf include -# Delete files used by the "multilib" facility (including libgcc subdirs). - -rm -f multilib.h tmpmultilib* - -if [ "x$(MULTILIB_DIRNAMES)" != x ] ; then \ - rm -rf $(MULTILIB_DIRNAMES); \ - else if [ "x$(MULTILIB_OPTIONS)" != x ] ; then \ - rm -rf `echo $(MULTILIB_OPTIONS) | sed -e 's/\// /g'`; \ - fi ; fi - -rm -fr stage1 stage2 stage3 stage4 -# Delete stamps of bootstrap stages - -rm -f stage?_* - -rm -f clean?_* - -rm -f stage_last - -# Delete all files that users would normally create -# while building and installing GCC. -INTL_DISTCLEAN = intl.distclean -distclean: clean $(INTL_DISTCLEAN) lang.distclean - -rm -f auto-host.h auto-build.h - -rm -f cstamp-h - -rm -f config.status config.run config.cache config.bak - -rm -f Make-lang Make-hooks Make-host Make-target - -rm -f Makefile specs.h options.h gencheck.h *.oaux - -rm -f gthr-default.h - -rm -f */stage1 */stage2 */stage3 */stage4 */include - -rm -f c-parse.output - -rm -f *.asm - -rm -f float.h - -rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak - -rm -f testsuite/{gcc,g++}.{log,sum} - -rm -f intl/libintl.h libintl.h - -rm -f cxxmain.c - -rm -f mklibgcc gccbug .gdbinit configargs.h - -rm -f gcov.pod - -rm -f fixinc/Makefile - -rmdir ada cp f java objc fixinc intl po 2>/dev/null - -# Delete anything likely to be found in the source directory -# that shouldn't be in the distribution. -extraclean: distclean lang.extraclean - -rm -rf =* ./"#"* *~* config/=* config/"#"* config/*~* - -rm -f patch* *.orig *.rej config/patch* config/*.orig config/*.rej - -rm -f config/*/=* config/*/"#"* config/*/*~* - -rm -f config/*/*.orig config/*/*.rej - -rm -f *.dvi *.ps *.oaux *.d *.[zZ] *.gz - -rm -f *.tar *.xtar *diff *.diff.* *.tar.* *.xtar.* *diffs - -rm -f *lose config/*lose config/*/*lose - -rm -f *.s *.s[0-9] *.i config/ChangeLog - -rm -f y.tab.c yacc.* - -rm -f */=* */"#"* */*~* - -rm -f */patch* */*.orig */*.rej - -rm -f */*.dvi */*.oaux */*.d */*.[zZ] */*.gz - -rm -f */*.tar */*.xtar */*diff */*.diff.* */*.tar.* */*.xtar.* */*diffs - -rm -f */*lose */*.s */*.s[0-9] */*.i - -# Get rid of every file that's generated from some other file, except for `configure'. -# Most of these files ARE PRESENT in the GCC distribution. -# We define INTL_DISTCLEAN, INTL_CLEAN & INTL_MOSTLYCLEAN to be empty in the -# submake, so that we don't descend into intl after its makefile has been -# removed. -maintainer-clean: - @echo 'This command is intended for maintainers to use; it' - @echo 'deletes files that may need special tools to rebuild.' - $(MAKE) INTL_DISTCLEAN= INTL_CLEAN= INTL_MOSTLYCLEAN= \ - intl.maintainer-clean lang.maintainer-clean distclean - -rm -f c-parse.y c-parse.c c-parse.output TAGS - -rm -f cpp.??s cpp.*aux - -rm -f gcc.??s gcc.*aux - -rm -f $(docdir)/cpp.info* $(docdir)/gcc.info* $(docdir)/gccint.info* - -rm -f $(docdir)/cppinternals.info* - -rm -f $(docdir)/gcov.1 $(docdir)/cpp.1 $(docdir)/gcc.1 - -rm -f $(docdir)/fsf-funding.7 $(docdir)/gfdl.7 $(docdir)/gpl.7 -# -# Entry points `install' and `uninstall'. -# Also use `install-collect2' to install collect2 when the config files don't. - -# Copy the compiler files into directories where they will be run. -# Install the driver last so that the window when things are -# broken is small. -install: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \ - $(INSTALL_CPP) install-man install-info intl.install install-@POSUB@ \ - lang.install-normal install-driver - -# Handle cpp installation. -install-cpp: cpp$(exeext) - -if [ -f gcc-cross$(exeext) ] ; then \ - rm -f $(bindir)/$(CPP_CROSS_NAME)$(exeext); \ - $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(bindir)/$(CPP_CROSS_NAME)$(exeext); \ - if [ x$(cpp_install_dir) != x ]; then \ - rm -f $(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \ - $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \ - else true; fi; \ + +# This rule is used to check the modules which use TARGET_FLAGS_TO_PASS. +# To build a target install-X means to cd to X and make install. +.PHONY: $(CHECK_TARGET_MODULES) +$(CHECK_TARGET_MODULES): + @dir=`echo $@ | sed -e 's/check-target-//'`; \ + if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/$${dir}; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\ else \ - rm -f $(bindir)/$(CPP_INSTALL_NAME)$(exeext); \ - $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(bindir)/$(CPP_INSTALL_NAME)$(exeext); \ - if [ x$(cpp_install_dir) != x ]; then \ - rm -f $(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \ - $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \ - else true; fi; \ + true; \ fi -uninstall-cpp: - -rm -f $(bindir)/$(CPP_INSTALL_NAME)$(exeext) - -rm -f $(bindir)/$(CPP_CROSS_NAME)$(exeext) - -if [ x$(cpp_install_dir) != x ]; then \ - rm -f $(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \ - rm -f $(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \ - else true; fi +# This rule is used to install the modules which use +# TARGET_FLAGS_TO_PASS. To build a target install-X means to cd to X +# and make install. +.PHONY: $(INSTALL_TARGET_MODULES) +$(INSTALL_TARGET_MODULES): installdirs + @dir=`echo $@ | sed -e 's/install-target-//'`; \ + if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/$${dir}; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \ + else \ + true; \ + fi -# Create the installation directories. -installdirs: - -if [ -d $(prefix) ] ; then true ; else mkdir $(prefix) ; chmod a+rx $(prefix) ; fi - -if [ -d $(exec_prefix) ] ; then true ; else mkdir $(exec_prefix) ; chmod a+rx $(exec_prefix) ; fi - -if [ -d $(libdir) ] ; then true ; else mkdir $(libdir) ; chmod a+rx $(libdir) ; fi - -if [ -d $(libdir)/gcc-lib ] ; then true ; else mkdir $(libdir)/gcc-lib ; chmod a+rx $(libdir)/gcc-lib ; fi -# This dir isn't currently searched by cpp. -# -if [ -d $(libdir)/gcc-lib/include ] ; then true ; else mkdir $(libdir)/gcc-lib/include ; chmod a+rx $(libdir)/gcc-lib/include ; fi - -fdir= ; for dir in `echo $(libsubdir) | tr '/' ' '`; do \ - fdir=$${fdir}/$${dir}; \ - if [ -d $${fdir} ] ; then true ; else mkdir $${fdir}; chmod a+rx $${fdir}; fi ; \ - done - -if [ -d $(bindir) ] ; then true ; else mkdir $(bindir) ; chmod a+rx $(bindir) ; fi - -if [ -d $(includedir) ] ; then true ; else mkdir $(includedir) ; chmod a+rx $(includedir) ; fi - -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; chmod a+rx $(infodir) ; fi - -if [ -d $(slibdir) ] ; then true ; else mkdir $(slibdir) ; chmod a+rx $(slibdir) ; fi -# We don't use mkdir -p to create the parents of man1dir, -# because some systems don't support it. -# Instead, we use this technique to create the immediate parent of man1dir. - -parent=`echo $(man1dir)|sed -e 's@/[^/]*$$@@'`; \ - if [ -d $$parent ] ; then true ; else mkdir $$parent ; chmod a+rx $$parent ; fi - -if [ -d $(man1dir) ] ; then true ; else mkdir $(man1dir) ; chmod a+rx $(man1dir) ; fi - -if [ -d $(man7dir) ] ; then true ; else mkdir $(man7dir) ; chmod a+rx $(man7dir) ; fi - -# Install the compiler executables built during cross compilation. -install-common: native $(EXTRA_PARTS) lang.install-common - for file in $(COMPILERS); do \ - if [ -f $$file ] ; then \ - rm -f $(libsubdir)/$$file; \ - $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file; \ - else true; \ - fi; \ - done - for file in $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(USE_COLLECT2) ..; do \ - if [ x"$$file" != x.. ]; then \ - rm -f $(libsubdir)/$$file; \ - $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file; \ - else true; fi; \ - done - for file in $(EXTRA_PARTS) ..; do \ - if [ x"$$file" != x.. ]; then \ - rm -f $(libsubdir)/$$file; \ - $(INSTALL_DATA) $$file $(libsubdir)/$$file; \ - chmod a-x $(libsubdir)/$$file; \ - else true; fi; \ - done -# Don't mess with specs if it doesn't exist yet. - -if [ -f specs ] ; then \ - rm -f $(libsubdir)/specs; \ - $(INSTALL_DATA) specs $(libsubdir)/specs; \ - chmod a-x $(libsubdir)/specs; \ +# This rule is used to build the modules which use X11_FLAGS_TO_PASS. +# To build a target all-X means to cd to X and make all. +.PHONY: $(ALL_X11_MODULES) +$(ALL_X11_MODULES): + @dir=`echo $@ | sed -e 's/all-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; \ + $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \ + else \ + true; \ fi -# Install protoize if it was compiled. - -if [ -f protoize$(exeext) ]; \ - then \ - if [ -f gcc-cross$(exeext) ] ; then \ - rm -f $(bindir)/$(PROTOIZE_CROSS_NAME)$(exeext); \ - $(INSTALL_PROGRAM) protoize$(exeext) $(bindir)/$(PROTOIZE_CROSS_NAME)$(exeext); \ - rm -f $(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext); \ - $(INSTALL_PROGRAM) unprotoize$(exeext) $(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext); \ - else \ - rm -f $(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \ - $(INSTALL_PROGRAM) protoize$(exeext) $(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \ - rm -f $(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \ - $(INSTALL_PROGRAM) unprotoize$(exeext) $(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \ - fi ; \ - rm -f $(libsubdir)/SYSCALLS.c.X; \ - $(INSTALL_DATA) SYSCALLS.c.X $(libsubdir)/SYSCALLS.c.X; \ - chmod a-x $(libsubdir)/SYSCALLS.c.X; \ + +# This rule is used to check the modules which use X11_FLAGS_TO_PASS. +# To build a target check-X means to cd to X and make all. +.PHONY: $(CHECK_X11_MODULES) +$(CHECK_X11_MODULES): + @dir=`echo $@ | sed -e 's/check-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; \ + $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \ + else \ + true; \ fi - -rm -f $(libsubdir)/cpp0$(exeext) - $(INSTALL_PROGRAM) cpp0$(exeext) $(libsubdir)/cpp0$(exeext) - -rm -f $(libsubdir)/tradcpp0$(exeext) - $(INSTALL_PROGRAM) tradcpp0$(exeext) $(libsubdir)/tradcpp0$(exeext) -# Install gcov if it was compiled. - -if [ -f gcov$(exeext) ]; \ - then \ - rm -f $(bindir)/gcov$(exeext); \ - $(INSTALL_PROGRAM) gcov$(exeext) $(bindir)/$(GCOV_INSTALL_NAME)$(exeext); \ + +# This rule is used to install the modules which use X11_FLAGS_TO_PASS. +# To build a target install-X means to cd to X and make install. +.PHONY: $(INSTALL_X11_MODULES) +$(INSTALL_X11_MODULES): installdirs + @dir=`echo $@ | sed -e 's/install-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; \ + $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \ + else \ + true; \ fi - $(INSTALL_SCRIPT) gccbug $(bindir)/$(GCCBUG_INSTALL_NAME) - -# Install the driver program as $(target_alias)-gcc -# and also as either gcc (if native) or $(gcc_tooldir)/bin/gcc. -install-driver: installdirs xgcc$(exeext) - -if [ -f gcc-cross$(exeext) ] ; then \ - rm -f $(bindir)/$(GCC_CROSS_NAME)$(exeext); \ - $(INSTALL_PROGRAM) gcc-cross$(exeext) $(bindir)/$(GCC_CROSS_NAME)$(exeext); \ - if [ -d $(gcc_tooldir)/bin/. ] ; then \ - rm -f $(gcc_tooldir)/bin/gcc$(exeext); \ - $(INSTALL_PROGRAM) gcc-cross$(exeext) $(gcc_tooldir)/bin/gcc$(exeext); \ - else true; fi; \ + +# gcc is the only module which uses GCC_FLAGS_TO_PASS. +.PHONY: all-gcc +all-gcc: + @if [ -f ./gcc/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \ else \ - rm -f $(bindir)/$(GCC_INSTALL_NAME)$(exeext); \ - $(INSTALL_PROGRAM) xgcc$(exeext) $(bindir)/$(GCC_INSTALL_NAME)$(exeext); \ - rm -f $(bindir)/$(target_alias)-gcc-1$(exeext); \ - $(LN) $(bindir)/$(GCC_INSTALL_NAME)$(exeext) $(bindir)/$(target_alias)-gcc-1$(exeext); \ - mv $(bindir)/$(target_alias)-gcc-1$(exeext) $(bindir)/$(GCC_TARGET_INSTALL_NAME)$(exeext); \ + true; \ fi -# Install the info files. -# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir -# to do the install. -install-info: doc installdirs lang.install-info - -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info* - -rm -f $(infodir)/cppinternals.info* $(infodir)/gccint.info* - if [ -f $(docdir)/gcc.info ]; then \ - for f in $(docdir)/cpp.info* $(docdir)/gcc.info* \ - $(docdir)/cppinternals.info* $(docdir)/gccint.info*; do \ - realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \ - $(INSTALL_DATA) $$f $(infodir)/$$realfile; \ - done; \ - else true; fi - -if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ - if [ -f $(infodir)/dir ] ; then \ - for f in cpp.info gcc.info gccint.info cppinternals.info; do \ - if [ -f $(infodir)/$$f ]; then \ - install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \ - else true; fi; \ - done; \ - else true; fi; \ - else true; fi; - -chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info* - -chmod a-x $(infodir)/cppinternals.info* $(infodir)/gccint.info* - -# Install the man pages. -install-man: installdirs $(GENERATED_MANPAGES) lang.install-man - -if [ -f gcc-cross$(exeext) ] ; then \ - rm -f $(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \ - $(INSTALL_DATA) $(docdir)/gcc.1 $(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \ - chmod a-x $(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \ +# Building GCC uses some tools for rebuilding "source" files +# like texinfo, bison/byacc, etc. So we must depend on those. +# +# While building GCC, it may be necessary to run various target +# programs like the assembler, linker, etc. So we depend on +# those too. +# +# In theory, on an SMP all those dependencies can be resolved +# in parallel. +# +.PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean +bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean: all-bootstrap + @r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + echo "Bootstrapping the compiler"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $@ + @r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + case "$@" in \ + *bootstrap4-lean ) \ + msg="Comparing stage3 and stage4 of the compiler"; \ + compare=compare3-lean ;; \ + *bootstrap4 ) msg="Comparing stage3 and stage4 of the compiler"; \ + compare=compare3 ;; \ + *-lean ) msg="Comparing stage2 and stage3 of the compiler"; \ + compare=compare-lean ;; \ + * ) msg="Comparing stage2 and stage3 of the compiler"; \ + compare=compare ;; \ + esac; \ + $(SET_LIB_PATH) \ + echo "$$msg"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare + @r=`pwd`; export r; \ + s=`cd $(srcdir); pwd` ; export s; \ + $(SET_LIB_PATH) \ + echo "Building runtime libraries"; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all + +.PHONY: cross +cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld + @r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + echo "Building the C and C++ compiler"; \ + cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" + @r=`pwd`; export r; \ + s=`cd $(srcdir); pwd` ; export s; \ + $(SET_LIB_PATH) \ + echo "Building runtime libraries"; \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \ + LANGUAGES="c c++" all + +.PHONY: check-gcc +check-gcc: + @if [ -f ./gcc/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check); \ else \ - rm -f $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \ - $(INSTALL_DATA) $(docdir)/gcc.1 $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \ - chmod a-x $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \ + true; \ fi - -rm -f $(man1dir)/cpp$(man1ext) - -$(INSTALL_DATA) $(docdir)/cpp.1 $(man1dir)/cpp$(man1ext) - -chmod a-x $(man1dir)/cpp$(man1ext) - -rm -f $(man1dir)/gcov$(man1ext) - -$(INSTALL_DATA) $(docdir)/gcov.1 $(man1dir)/gcov$(man1ext) - -chmod a-x $(man1dir)/gcov$(man1ext) - -rm -f $(man7dir)/fsf-funding$(man7ext) - -$(INSTALL_DATA) $(docdir)/fsf-funding.7 $(man7dir)/fsf-funding$(man7ext) - -chmod a-x $(man7dir)/fsf-funding$(man7ext) - -rm -f $(man7dir)/gfdl$(man7ext) - -$(INSTALL_DATA) $(docdir)/gfdl.7 $(man7dir)/gfdl$(man7ext) - -chmod a-x $(man7dir)/gfdl$(man7ext) - -rm -f $(man7dir)/gpl$(man7ext) - -$(INSTALL_DATA) $(docdir)/gpl.7 $(man7dir)/gpl$(man7ext) - -chmod a-x $(man7dir)/gpl$(man7ext) - -# Install the library. -install-libgcc: libgcc.mk libgcc.a installdirs - if $(RANLIB_TEST_FOR_TARGET); then \ - r_f_t=$(RANLIB_FOR_TARGET); \ + +.PHONY: check-c++ +check-c++: + @if [ -f ./gcc/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ + $(MAKE) check-target-libstdc++-v3; \ else \ - r_f_t=: ; \ - fi; \ - $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ - HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \ - AR_FOR_TARGET="$(AR_FOR_TARGET)" \ - AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ - AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \ - CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \ - RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \ - NM_FOR_TARGET="$(NM_FOR_TARGET)" AWK="$(AWK)" \ - LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)" \ - INCLUDES="$(INCLUDES)" \ - CONFIG_H="$(TCONFIG_H)" MACHMODE_H="$(MACHMODE_H)" \ - LIB1ASMSRC='$(LIB1ASMSRC)' \ - MAKEOVERRIDES= \ - INSTALL_DATA="$(INSTALL_DATA)" \ - RANLIB_FOR_TARGET="$$r_f_t" \ - libsubdir="$(libsubdir)" \ - slibdir="$(slibdir)" \ - -f libgcc.mk install - -# Install multiple versions of libgcc.a. -install-multilib: stmp-multilib installdirs - if $(RANLIB_TEST_FOR_TARGET); then \ - r_f_t=$(RANLIB_FOR_TARGET); \ + true; \ + fi + +.PHONY: install-gcc +install-gcc: + @if [ -f ./gcc/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ else \ - r_f_t=: ; \ - fi; \ - $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ - HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \ - AR_FOR_TARGET="$(AR_FOR_TARGET)" \ - AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ - AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \ - CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \ - RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \ - NM_FOR_TARGET="$(NM_FOR_TARGET)" AWK="$(AWK)" \ - LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)" \ - INCLUDES="$(INCLUDES)" \ - CONFIG_H="$(CONFIG_H)" MACHMODE_H="$(MACHMODE_H)" \ - LIB1ASMSRC='$(LIB1ASMSRC)' \ - MAKEOVERRIDES= \ - INSTALL_DATA="$(INSTALL_DATA)" \ - RANLIB_FOR_TARGET="$$r_f_t" \ - libsubdir="$(libsubdir)" \ - slibdir="$(slibdir)" \ - -f libgcc.mk install - -# Install all the header files built in the include subdirectory. -install-headers: $(INSTALL_HEADERS_DIR) -# Fix symlinks to absolute paths in the installed include directory to -# point to the installed directory, not the build directory. -# Don't need to use LN_S here since we really do need ln -s and no substitutes. - -files=`cd $(libsubdir)/include; find . -type l -print 2>/dev/null`; \ - if [ $$? -eq 0 ]; then \ - dir=`cd include; pwd`; \ - for i in $$files; do \ - dest=`ls -ld $(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \ - if expr "$$dest" : "$$dir.*" > /dev/null; then \ - rm -f $(libsubdir)/include/$$i; \ - ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(libsubdir)/include/$$i; \ - fi; \ - done; \ + true; \ fi -# Create or recreate the gcc private include file directory. -install-include-dir: installdirs - -rm -rf $(libsubdir)/include - mkdir $(libsubdir)/include - -chmod a+rx $(libsubdir)/include - -# Install the include directory using tar. -install-headers-tar: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir -# We use `pwd`/include instead of just include to problems with CDPATH -# Unless a full pathname is provided, some shells would print the new CWD, -# found in CDPATH, corrupting the output. We could just redirect the -# output of `cd', but some shells lose on redirection within `()'s - (cd `pwd`/include ; \ - tar -cf - .; exit 0) | (cd $(libsubdir)/include; tar xpf - ) -# /bin/sh on some systems returns the status of the first tar, -# and that can lose with GNU tar which always writes a full block. -# So use `exit 0' to ignore its exit status. - -# Install the include directory using cpio. -install-headers-cpio: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir -# See discussion about the use of `pwd` above - cd `pwd`/include ; \ - find . -print | cpio -pdum $(libsubdir)/include - -# Install the include directory using cp. -install-headers-cp: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir - cp -p -r include $(libsubdir) - -# Use this target to install the program `collect2' under the name `collect2'. -install-collect2: collect2 installdirs - $(INSTALL_PROGRAM) collect2$(exeext) $(libsubdir)/collect2$(exeext) -# Install the driver program as $(libsubdir)/gcc for collect2. - $(INSTALL_PROGRAM) xgcc$(exeext) $(libsubdir)/gcc$(exeext) - -# Cancel installation by deleting the installed files. -uninstall: intl.uninstall lang.uninstall $(UNINSTALL_CPP) - -rm -rf $(libsubdir) - -rm -rf $(bindir)/$(GCC_INSTALL_NAME)$(exeext) - -rm -rf $(bindir)/$(GCC_CROSS_NAME)$(exeext) - -rm -rf $(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext) - -rm -rf $(bindir)/$(PROTOIZE_CROSS_NAME)$(exeext) - -rm -rf $(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext) - -rm -rf $(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext) - -rm -rf $(bindir)/$(GCOV_INSTALL_NAME)$(exeext) - -rm -rf $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) - -rm -rf $(man1dir)/$(GCC_CROSS_NAME)$(man1ext) - -rm -rf $(man1dir)/cpp$(man1ext) - -rm -rf $(man1dir)/protoize$(man1ext) - -rm -rf $(man1dir)/unprotoize$(man1ext) - -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info* - -rm -f $(infodir)/cppinternals.info* $(infodir)/gccint.info* -# -# These targets are for the dejagnu testsuites. The file site.exp -# contains global variables that all the testsuites will use. - -# Set to $(target_alias)/ for cross. -target_subdir = @target_subdir@ - -site.exp: ./config.status Makefile - @echo "Making a new config file..." - -@rm -f ./tmp? - @$(STAMP) site.exp - -@mv site.exp site.bak - @echo "## these variables are automatically generated by make ##" > ./tmp0 - @echo "# Do not edit here. If you wish to override these values" >> ./tmp0 - @echo "# add them to the last section" >> ./tmp0 - @echo "set rootme \"`pwd`\"" >> ./tmp0 - @echo "set srcdir \"`cd ${srcdir}; pwd`\"" >> ./tmp0 - @echo "set host_triplet $(host_canonical)" >> ./tmp0 - @echo "set build_triplet $(build_canonical)" >> ./tmp0 - @echo "set target_triplet $(target)" >> ./tmp0 - @echo "set target_alias $(target_alias)" >> ./tmp0 -# CFLAGS is set even though it's empty to show we reserve the right to set it. - @echo "set CFLAGS \"\"" >> ./tmp0 - @echo "set CXXFLAGS \"-I$(objdir)/../$(target_subdir)libio -I\$$srcdir/../libg++/src -I\$$srcdir/../libio -I\$$srcdir/../libstdc++ -I\$$srcdir/../libstdc++/stl -L$(objdir)/../$(target_subdir)libg++ -L$(objdir)/../$(target_subdir)libstdc++\"" >> ./tmp0 - @echo "set TESTING_IN_BUILD_TREE 1" >> ./tmp0 - @echo "set HAVE_LIBSTDCXX_V3 1" >> ./tmp0 -# If newlib has been configured, we need to pass -B to gcc so it can find -# newlib's crt0.o if it exists. This will cause a "path prefix not used" -# message if it doesn't, but the testsuite is supposed to ignore the message - -# it's too difficult to tell when to and when not to pass -B (not all targets -# have crt0's). We could only add the -B if ../newlib/crt0.o exists, but that -# seems like too selective a test. -# ??? Another way to solve this might be to rely on linker scripts. Then -# theoretically the -B won't be needed. -# We also need to pass -L ../ld so that the linker can find ldscripts. - @if [ -d $(objdir)/../$(target_subdir)newlib ] ; then \ - echo "set newlib_cflags \"-I$(objdir)/../$(target_subdir)newlib/targ-include -I\$$srcdir/../newlib/libc/include\"" >> ./tmp0; \ - echo "set newlib_ldflags \"-B$(objdir)/../$(target_subdir)newlib/\"" >> ./tmp0; \ - echo "append CFLAGS \" \$$newlib_cflags\"" >> ./tmp0; \ - echo "append CXXFLAGS \" \$$newlib_cflags\"" >> ./tmp0; \ - echo "append LDFLAGS \" \$$newlib_ldflags\"" >> ./tmp0; \ - else true; \ +.PHONY: install-gcc-cross +install-gcc-cross: + @if [ -f ./gcc/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \ + else \ + true; \ fi - @if [ -d $(objdir)/../ld ] ; then \ - echo "append LDFLAGS \" -L$(objdir)/../ld\"" >> ./tmp0; \ - else true; \ +# EXPERIMENTAL STUFF +# This rule is used to install the modules which use FLAGS_TO_PASS. +# To build a target install-X means to cd to X and make install. +.PHONY: install-dosrel +install-dosrel: installdirs info + @dir=`echo $@ | sed -e 's/install-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`pwd`; export r; \ + s=`cd $(srcdir); pwd`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ + else \ + true; \ fi - echo "set tmpdir $(objdir)/testsuite" >> ./tmp0 - @echo "set srcdir \"\$${srcdir}/testsuite\"" >> ./tmp0 - @echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0 - @cat ./tmp0 > site.exp - @cat site.bak | sed \ - -e '1,/^## All variables above are.*##/ d' >> site.exp - -@rm -f ./tmp? - -CHECK_TARGETS = check-gcc check-fixinc @check_languages@ - -check-c++ : check-g++ -check-f77 : check-g77 -check-java : - -check-fixinc : - if (autogen --ver=v) > /dev/null 2>&1 ; \ - then cd fixinc && $(MAKE) check ; \ - else true ; fi -check: $(CHECK_TARGETS) - -# The idea is to parallelize testing of multilibs, for example: -# make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu} -# will run 3 concurrent sessions of check-gcc, eventually testing -# all 10 combinations. GNU make is required, as is a shell that expands -# alternations within braces. -check-gcc//% check-g++//% check-g77//% check-objc//%: site.exp - target=`echo "$@" | sed 's,//.*,,'`; \ - variant=`echo "$@" | sed 's,^[^/]*//,,'`; \ - vardots=`echo "$$variant" | sed 's,/,.,g'`; \ - $(MAKE) TESTSUITEDIR="testsuite.$$vardots" \ - RUNTESTFLAGS="--target_board=$$variant $(RUNTESTFLAGS)" \ - "$$target" - -TESTSUITEDIR = testsuite - -$(TESTSUITEDIR)/site.exp: site.exp - test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR) - -rm -f $@ - sed '/set tmpdir/ s|testsuite|$(TESTSUITEDIR)|' < site.exp > $@ - -check-g++: $(TESTSUITEDIR)/site.exp - -(rootme=`pwd`; export rootme; \ - srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd $(TESTSUITEDIR); \ - EXPECT=${EXPECT} ; export EXPECT ; \ - if [ -f $${rootme}/../expect/expect ] ; then \ - TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \ - export TCL_LIBRARY ; fi ; \ - $(RUNTEST) --tool g++ $(RUNTESTFLAGS)) - -check-gcc: $(TESTSUITEDIR)/site.exp - -(rootme=`pwd`; export rootme; \ - srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd $(TESTSUITEDIR); \ - EXPECT=${EXPECT} ; export EXPECT ; \ - if [ -f $${rootme}/../expect/expect ] ; then \ - TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \ - export TCL_LIBRARY ; fi ; \ - $(RUNTEST) --tool gcc $(RUNTESTFLAGS)) - -check-g77: $(TESTSUITEDIR)/site.exp - -(rootme=`pwd`; export rootme; \ - srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd $(TESTSUITEDIR); \ - EXPECT=${EXPECT} ; export EXPECT ; \ - if [ -f $${rootme}/../expect/expect ] ; then \ - TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \ - export TCL_LIBRARY ; fi ; \ - $(RUNTEST) --tool g77 $(RUNTESTFLAGS)) - -check-objc: $(TESTSUITEDIR)/site.exp - -(rootme=`pwd`; export rootme; \ - srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd $(TESTSUITEDIR); \ - EXPECT=${EXPECT} ; export EXPECT ; \ - if [ -f $${rootme}/../expect/expect ] ; then \ - TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \ - export TCL_LIBRARY ; fi ; \ - $(RUNTEST) --tool objc $(RUNTESTFLAGS)) - -check-consistency: testsuite/site.exp - -rootme=`pwd`; export rootme; \ - srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd testsuite; \ - EXPECT=${EXPECT} ; export EXPECT ; \ - if [ -f $${rootme}/../expect/expect ] ; then \ - TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \ - export TCL_LIBRARY ; fi ; \ - $(RUNTEST) --tool consistency $(RUNTESTFLAGS) - -# These exist for maintenance purposes. - -# Update the tags table. -TAGS: force - (cd $(srcdir); \ - mkdir tmp-tags; \ - mv -f c-parse.[ch] =*.[chy] tmp-tags; \ - etags *.y *.h *.c; \ - mv tmp-tags/* .; \ - rmdir tmp-tags) - -# A list of files to be destroyed during "lean" builds. -VOL_FILES=`echo $(BACKEND) $(OBJS) $(C_OBJS) $(LIBCPP_OBJS) *.c *.h gen*` - -# Flags to pass to stage2 and later recursive makes. Note that the -# WARN_CFLAGS setting can't be to the expansion of GCC_WARN_CFLAGS in -# the context of the stage_x rule. -STAGE2_FLAGS_TO_PASS = \ - CFLAGS="$(BOOT_CFLAGS)" \ - LDFLAGS="$(BOOT_LDFLAGS)" \ - WARN_CFLAGS="\$$(GCC_WARN_CFLAGS)" \ - STRICT_WARN="$(STRICT2_WARN)" \ - libdir=$(libdir) \ - LANGUAGES="$(LANGUAGES)" \ - MAKEOVERRIDES= \ - OUTPUT_OPTION="-o \$$@" - -# Only build the C compiler for stage1, because that is the only one that -# we can guarantee will build with the native compiler, and also it is the -# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS), -# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them -# overrideable (for a bootstrap build stage1 also builds gcc.info). -stage1_build: - $(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" \ - CFLAGS="$(STAGE1_CFLAGS)" MAKEINFO="$(MAKEINFO)" \ - MAKEINFOFLAGS="$(MAKEINFOFLAGS)" - $(STAMP) stage1_build - echo stage1_build > stage_last - -stage1_copy: stage1_build - $(MAKE) stage1 - $(STAMP) stage1_copy - echo stage2_build > stage_last - -stage2_build: stage1_copy - $(MAKE) CC="stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \ - STAGE_PREFIX=stage1/ \ - $(STAGE2_FLAGS_TO_PASS) - $(STAMP) stage2_build - echo stage2_build > stage_last - -stage2_copy: stage2_build - $(MAKE) stage2 - $(STAMP) stage2_copy - echo stage3_build > stage_last - -stage3_build: stage2_copy - $(MAKE) CC="stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" \ - STAGE_PREFIX=stage2/ \ - $(STAGE2_FLAGS_TO_PASS) - $(STAMP) stage3_build - echo stage3_build > stage_last - -# For bootstrap4: -stage3_copy: stage3_build - $(MAKE) stage3 - $(STAMP) stage3_copy - echo stage4_build > stage_last - -stage4_build: stage3_copy - $(MAKE) CC="stage3/xgcc$(exeext) -Bstage3/ -B$(build_tooldir)/bin/" \ - STAGE_PREFIX=stage3/ \ - $(STAGE2_FLAGS_TO_PASS) - $(STAMP) stage4_build - echo stage4_build > stage_last - -# Additional steps for *-lean targets: -clean_s1: stage1_copy - -(cd stage1 && rm -f $(VOL_FILES)) - $(STAMP) clean_s1 - -clean_s2: stage2_copy - -rm -rf stage1 - $(STAMP) clean_s2 - -# The various entry points for bootstrapping. - -bootstrap: stage3_build - @echo - @echo Bootstrap complete - make \"quickstrap\" to redo last build, - @echo \"restage1\" through \"restage3\" to rebuild specific stages, - @echo or \"cleanstrap\" to redo the bootstrap from scratch. - -bootstrap-lean : clean_s1 clean_s2 stage3_build - @echo - @echo Bootstrap complete - make \"quickstrap\" to redo last build, - @echo or \"cleanstrap\" to redo the bootstrap from scratch. - -bootstrap2: bootstrap - -bootstrap2-lean : bootstrap-lean - -bootstrap3 bootstrap3-lean: bootstrap - -bootstrap4 bootstrap4-lean: stage4_build - -unstage1 unstage2 unstage3 unstage4: - -set -vx; stage=`echo $@ | sed -e 's/un//'`; \ - rm -f $$stage/as$(exeext); \ - rm -f $$stage/ld$(exeext); \ - rm -f $$stage/collect-ld$(exeext); \ - if test -d $$stage; then \ - mv $$stage/* . 2>/dev/null; \ - for i in `cd $$stage; echo *` ; do \ - if test -d $$stage/$$i; then \ - mv $$stage/$$i/* $$i/. 2>/dev/null; \ - else \ - mv $$stage/$$i .; \ - fi; \ - done \ - fi ; \ - rm -f $${stage}_build $${stage}_copy ;\ - echo $${stage}_build > stage_last - -restage1: unstage1 - $(MAKE) stage1_build +install-dosrel-fake: + +ALL_GCC = all-gcc +ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss +ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3 + +# This is a list of inter-dependencies among modules. +all-apache: +all-ash: +all-autoconf: all-m4 all-texinfo +all-automake: all-m4 all-texinfo +all-bash: +all-bfd: all-libiberty all-intl +all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl +all-bison: all-texinfo +configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads +all-target-boehm-gc: configure-target-boehm-gc +configure-target-bsp: $(ALL_GCC_C) +all-target-bsp: configure-target-bsp +all-byacc: +all-bzip2: +all-cgen: all-libiberty +all-cvssrc: +configure-target-cygmon: $(ALL_GCC_C) +all-target-cygmon: configure-target-cygmon all-target-libiberty all-target-libstub all-target-bsp +all-db: +all-dejagnu: all-tcl all-expect all-tk +all-diff: all-libiberty +all-emacs: +all-emacs19: all-bison all-byacc +all-etc: +configure-target-examples: $(ALL_GCC_C) +all-target-examples: configure-target-examples +all-expect: all-tcl all-tk +all-fileutils: all-libiberty +all-findutils: +all-find: +all-flex: all-libiberty all-bison all-byacc +all-gas: all-libiberty all-opcodes all-bfd all-intl +all-gash: all-tcl +all-gawk: +all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib +all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib +GDB_TK = all-tk all-tcl all-itcl all-tix all-libgui +all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK) +all-gettext: +all-gnuserv: +configure-target-gperf: $(ALL_GCC_CXX) +all-target-gperf: configure-target-gperf all-target-libiberty all-target-libstdc++-v3 +all-gprof: all-libiberty all-bfd all-opcodes all-intl +all-grep: all-libiberty +all-grez: all-libiberty all-bfd all-opcodes +all-gui: all-gdb all-libproc all-target-librx +all-guile: +all-gzip: all-libiberty +all-hello: all-libiberty +all-indent: +all-inet: all-tcl all-send-pr all-perl +all-intl: +all-ispell: all-emacs19 +all-itcl: all-tcl all-tk all-tcl8.1 all-tk8.1 +all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl +configure-target-libgloss: $(ALL_GCC) +all-target-libgloss: configure-target-libgloss configure-target-newlib +all-libgui: all-tcl all-tk all-tcl8.1 all-tk8.1 all-itcl +all-libiberty: + +all-build-libiberty: configure-build-libiberty + +configure-target-libffi: $(ALL_GCC_C) +all-target-libffi: configure-target-libffi +configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi +all-target-libjava: configure-target-libjava all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi +configure-target-librx: $(ALL_GCC_C) +all-target-librx: configure-target-librx +configure-target-libstdc++-v3: $(ALL_GCC_C) +all-target-libstdc++-v3: configure-target-libstdc++-v3 all-target-libiberty +configure-target-libstub: $(ALL_GCC_C) +all-target-libstub: configure-target-libstub +all-libtool: +configure-target-libf2c: $(ALL_GCC_C) +all-target-libf2c: configure-target-libf2c all-target-libiberty +configure-target-libobjc: $(ALL_GCC_C) +all-target-libobjc: configure-target-libobjc all-target-libiberty +all-m4: all-libiberty all-texinfo +all-make: all-libiberty +all-mmalloc: +configure-target-newlib: $(ALL_GCC) +all-target-newlib: configure-target-newlib +configure-target-libtermcap: $(ALL_GCC_C) +all-target-libtermcap: configure-target-libtermcap +all-opcodes: all-bfd all-libiberty all-cgen +all-patch: all-libiberty +all-perl: +all-prms: all-libiberty +configure-target-qthreads: $(ALL_GCC_C) +all-target-qthreads: configure-target-qthreads +all-rcs: +all-readline: +all-recode: all-libiberty +all-sed: all-libiberty +all-send-pr: all-prms +all-shellutils: +all-sid: all-tcl all-tk +all-sim: all-libiberty all-bfd all-opcodes all-readline all-cgen +all-snavigator: all-tcl all-tk all-itcl all-db all-grep all-libgui +all-tar: all-libiberty +all-tcl: +all-tcl8.1: +all-tclX: all-tcl all-tk +all-tk: all-tcl +all-tk8.1: all-tcl8.1 +all-texinfo: all-libiberty +all-textutils: +all-tgas: all-libiberty all-bfd all-opcodes +all-time: +all-tix: all-tcl all-tk all-tcl8.1 all-tk8.1 +all-wdiff: +configure-target-winsup: $(ALL_GCC_C) +all-target-winsup: all-target-libiberty all-target-libtermcap configure-target-winsup +all-uudecode: all-libiberty +all-zip: +all-zlib: +configure-target-zlib: $(ALL_GCC_C) +all-target-zlib: configure-target-zlib +all-fastjar: all-zlib all-libiberty +configure-target-fastjar: configure-target-zlib +all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty +configure-target-libiberty: $(ALL_GCC_C) +all-target-libiberty: configure-target-libiberty +all-target: $(ALL_TARGET_MODULES) +install-target: $(INSTALL_TARGET_MODULES) +install-gdb: install-tcl install-tk install-itcl install-tix install-libgui +install-sid: install-tcl install-tk +### other supporting targets + +MAKEDIRS= \ + $(prefix) \ + $(exec_prefix) +.PHONY: installdirs +installdirs: mkinstalldirs + $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS) + +dir.info: do-install-info + if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \ + $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \ + mv -f dir.info.new dir.info ; \ + else true ; \ + fi -restage2: unstage2 - $(MAKE) LANGUAGES="$(LANGUAGES)" stage2_build +dist: + @echo "Building a full distribution of this tree isn't done" + @echo "via 'make dist'. Check out the etc/ subdirectory" -restage3: unstage3 - $(MAKE) LANGUAGES="$(LANGUAGES)" stage3_build +etags tags: TAGS -restage4: unstage4 - $(MAKE) LANGUAGES="$(LANGUAGES)" stage4_build +# Right now this just builds TAGS in each subdirectory. emacs19 has the +# ability to use several tags files at once, so there is probably no need +# to combine them into one big TAGS file (like CVS 1.3 does). We could +# (if we felt like it) have this Makefile write a piece of elisp which +# the user could load to tell emacs19 where all the TAGS files we just +# built are. +TAGS: do-TAGS -bubblestrap: - if test -f stage3_build; then true; else \ - echo; echo You must \"make bootstrap\" first.; \ - exit 1; \ - fi - for i in stage3 \ - unstage1 stage1_build stage1_copy \ - unstage2 stage2_build stage2_copy \ - unstage3 stage3_build ; \ - do \ - $(MAKE) LANGUAGES="$(LANGUAGES)" $$i || exit 1 ; \ - done +# with the gnu make, this is done automatically. -quickstrap: - if test -f stage_last ; then \ - LAST=`cat stage_last`; rm $$LAST; $(MAKE) LANGUAGES="$(LANGUAGES)" $$LAST; \ - else \ - $(MAKE) stage1_build; \ - fi +Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger) + $(SHELL) ./config.status -cleanstrap: - -$(MAKE) clean - $(MAKE) LANGUAGES="$(LANGUAGES)" bootstrap - -# Compare the object files in the current directory with those in the -# stage2 directory. - -# ./ avoids bug in some versions of tail. -compare compare3 compare4 compare-lean compare3-lean compare4-lean: force - -rm -f .bad_compare - case "$@" in compare | compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^compare\([0-9][0-9]*\).*,\1,'` ;; esac; \ - for file in *$(objext); do \ - tail +16c ./$$file > tmp-foo1; \ - tail +16c stage$$stage/$$file > tmp-foo2 \ - && (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \ - done - case "$@" in compare | compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^compare\([0-9][0-9]*\).*,\1,'` ;; esac; \ - for dir in tmp-foo intl $(SUBDIRS); do \ - if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \ - for file in $$dir/*$(objext); do \ - tail +16c ./$$file > tmp-foo1; \ - tail +16c stage$$stage/$$file > tmp-foo2 \ - && (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \ - done; \ - else true; fi; \ - done - -rm -f tmp-foo* - case "$@" in compare | compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^compare\([0-9][0-9]*\).*,\1,'` ;; esac; \ - if [ -f .bad_compare ]; then \ - echo "Bootstrap comparison failure!"; \ - cat .bad_compare; \ - exit 1; \ +# +# Support for building net releases + +# Files in devo used in any net release. +# ChangeLog omitted because it may refer to files which are not in this +# distribution (perhaps it would be better to include it anyway). +DEVO_SUPPORT= README Makefile.in configure configure.in \ + config.guess config.if config.sub config move-if-change \ + mpw-README mpw-build.in mpw-config.in mpw-configure mpw-install \ + COPYING COPYING.LIB install-sh config-ml.in symlink-tree \ + mkinstalldirs ltconfig ltmain.sh missing ylwrap \ + libtool.m4 gettext.m4 ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh + +# Files in devo/etc used in any net release. +# ChangeLog omitted because it may refer to files which are not in this +# distribution (perhaps it would be better to include it anyway). +ETC_SUPPORT= Makefile.in configure configure.in standards.texi \ + make-stds.texi standards.info* + +# When you use `make setup-dirs' or `make taz' you should always redefine +# this macro. +SUPPORT_FILES = list-of-support-files-for-tool-in-question + +# NOTE: No double quotes in the below. It is used within shell script +# as VER="$(VER)" +VER = ` if grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \ + sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \ else \ - case "$@" in \ - *-lean ) rm -rf stage$$stage ;; \ - *) ;; \ - esac; true; \ - fi - -# Compare the object files in the current directory with those in the -# stage2 directory. Use gnu cmp (diffutils v2.4 or later) to avoid -# running tail and the overhead of twice copying each object file. - -gnucompare gnucompare3 gnucompare4 gnucompare-lean gnucompare3-lean gnucompare4-lean: force - -rm -f .bad_compare - case "$@" in gnucompare | gnucompare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^gnucompare\([0-9][0-9]*\).*,\1,'` ;; esac; \ - for file in *$(objext); do \ - (cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \ - done - case "$@" in gnucompare | gnucompare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^gnucompare\([0-9][0-9]*\).*,\1,'` ;; esac; \ - for dir in tmp-foo intl $(SUBDIRS); do \ - if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \ - for file in $$dir/*$(objext); do \ - (cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \ - done; \ - else true; fi; \ + sed < $(TOOL)/Makefile.in -n 's/^VERSION *= *//p'; \ + fi` +PACKAGE = $(TOOL) + +.PHONY: taz +taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex + $(MAKE) -f Makefile.in do-proto-toplev \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f Makefile.in do-md5sum \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f Makefile.in do-tar-bz2 \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + +.PHONY: gdb-taz +gdb-taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex + $(MAKE) -f Makefile.in do-proto-toplev \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f Makefile.in do-md5sum \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f Makefile.in do-djunpack \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + $(MAKE) -f Makefile.in do-tar-bz2 \ + TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(SUPPORT_FILES)" + +.PHONY: do-proto-toplev +do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex + echo "==> Making $(PACKAGE)-$(VER)/" + # Take out texinfo from a few places. + sed -e '/^all\.normal: /s/\all-texinfo //' \ + -e '/^ install-texinfo /d' \ + <Makefile.in >tmp + mv -f tmp Makefile.in + # + ./configure sun4 + [ -z "$(CONFIGURE_TARGET_MODULES)" ] \ + || $(MAKE) $(CONFIGURE_TARGET_MODULES) \ + ALL_GCC="" ALL_GCC_C="" ALL_GCC_CXX="" \ + CC_FOR_TARGET="$(CC)" CXX_FOR_TARGET="$(CXX)" + # Make links, and run "make diststuff" or "make info" when needed. + rm -rf proto-toplev ; mkdir proto-toplev + set -e ; dirs="$(TOOL) $(DEVO_SUPPORT) $(SUPPORT_FILES)" ; \ + for d in $$dirs ; do \ + if [ -d $$d ]; then \ + if [ ! -f $$d/Makefile ] ; then true ; \ + elif grep '^diststuff:' $$d/Makefile >/dev/null ; then \ + (cd $$d ; $(MAKE) diststuff ) || exit 1 ; \ + elif grep '^info:' $$d/Makefile >/dev/null ; then \ + (cd $$d ; $(MAKE) info ) || exit 1 ; \ + fi ; \ + if [ -d $$d/proto-$$d.dir ]; then \ + ln -s ../$$d/proto-$$d.dir proto-toplev/$$d ; \ + else \ + ln -s ../$$d proto-toplev/$$d ; \ + fi ; \ + else ln -s ../$$d proto-toplev/$$d ; fi ; \ done - case "$@" in gnucompare | gnucompare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^gnucompare\([0-9][0-9]*\).*,\1,'` ;; esac; \ - if [ -f .bad_compare ]; then \ - echo "Bootstrap comparison failure!"; \ - cat .bad_compare; \ - exit 1; \ - else \ - case "$@" in \ - *-lean ) rm -rf stage$$stage ;; \ - esac; true; \ - fi - -# Copy the object files from a particular stage into a subdirectory. -stage1-start: - -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi - $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage1 - -for dir in intl $(SUBDIRS) ; \ - do \ - if [ -d stage1/$$dir ] ; then true ; else mkdir stage1/$$dir ; fi ; \ - done - -mv $(STAGESTUFF) stage1 - -mv intl/*$(objext) stage1/intl -# Copy as/ld if they exist to stage dir, so that running xgcc from the stage -# dir will work properly. - -if [ -f as$(exeext) ] ; then (cd stage1 && $(LN_S) ../as$(exeext) .) ; else true ; fi - -if [ -f ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../ld$(exeext) .) ; else true ; fi - -if [ -f collect-ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi - -rm -f stage1/libgcc.a stage1/libgcc_eh.a - -cp libgcc.a stage1 - -if $(RANLIB_TEST_FOR_TARGET) ; then \ - $(RANLIB_FOR_TARGET) stage1/libgcc.a; \ - else true; fi - -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage1; \ - if $(RANLIB_TEST_FOR_TARGET) ; then \ - $(RANLIB_FOR_TARGET) stage1/libgcc_eh.a; \ - else true; fi; fi - -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \ - cp stage1/$${f} . ; \ - else true; \ - fi; done -stage1: force stage1-start lang.stage1 - -stage2-start: - -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi - $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage2 - -for dir in intl $(SUBDIRS) ; \ - do \ - if [ -d stage2/$$dir ] ; then true ; else mkdir stage2/$$dir ; fi ; \ - done - -mv $(STAGESTUFF) stage2 - -mv intl/*$(objext) stage2/intl -# Copy as/ld if they exist to stage dir, so that running xgcc from the stage -# dir will work properly. - -if [ -f as$(exeext) ] ; then (cd stage2 && $(LN_S) ../as$(exeext) .) ; else true ; fi - -if [ -f ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../ld$(exeext) .) ; else true ; fi - -if [ -f collect-ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi - -rm -f stage2/libgcc.a stage2/libgcc_eh.a - -cp libgcc.a stage2 - -if $(RANLIB_TEST_FOR_TARGET) ; then \ - $(RANLIB_FOR_TARGET) stage2/libgcc.a; \ - else true; fi - -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage2; \ - if $(RANLIB_TEST_FOR_TARGET) ; then \ - $(RANLIB_FOR_TARGET) stage2/libgcc_eh.a; \ - else true; fi; fi - -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \ - cp stage2/$${f} . ; \ - else true; \ - fi; done -stage2: force stage2-start lang.stage2 - -stage3-start: - -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi - $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage3 - -for dir in intl $(SUBDIRS) ; \ - do \ - if [ -d stage3/$$dir ] ; then true ; else mkdir stage3/$$dir ; fi ; \ - done - -mv $(STAGESTUFF) stage3 - -mv intl/*$(objext) stage3/intl -# Copy as/ld if they exist to stage dir, so that running xgcc from the stage -# dir will work properly. - -if [ -f as$(exeext) ] ; then (cd stage3 && $(LN_S) ../as$(exeext) .) ; else true ; fi - -if [ -f ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../ld$(exeext) .) ; else true ; fi - -if [ -f collect-ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi - -rm -f stage3/libgcc.a stage3/libgcc_eh.a - -cp libgcc.a stage3 - -if $(RANLIB_TEST_FOR_TARGET) ; then \ - $(RANLIB_FOR_TARGET) stage3/libgcc.a; \ + cd etc && $(MAKE) info + $(MAKE) distclean + # + mkdir proto-toplev/etc + (cd proto-toplev/etc; \ + for i in $(ETC_SUPPORT); do \ + ln -s ../../etc/$$i . ; \ + done) + # + # Take out texinfo from configurable dirs + rm proto-toplev/configure.in + sed -e '/^host_tools=/s/texinfo //' \ + <configure.in >proto-toplev/configure.in + # + mkdir proto-toplev/texinfo + ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/ + if test -r texinfo/util/tex3patch ; then \ + mkdir proto-toplev/texinfo/util && \ + ln -s ../../../texinfo/util/tex3patch proto-toplev/texinfo/util ; \ else true; fi - -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage3; \ - if $(RANLIB_TEST_FOR_TARGET) ; then \ - $(RANLIB_FOR_TARGET) stage3/libgcc_eh.a; \ - else true; fi; fi - -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \ - cp stage3/$${f} . ; \ - else true; \ - fi; done -stage3: force stage3-start lang.stage3 - -stage4-start: - -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi - $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage4 - -for dir in intl $(SUBDIRS) ; \ - do \ - if [ -d stage4/$$dir ] ; then true ; else mkdir stage4/$$dir ; fi ; \ - done - -mv $(STAGESTUFF) stage4 - -mv intl/*$(objext) stage4/intl -# Copy as/ld if they exist to stage dir, so that running xgcc from the stage -# dir will work properly. - -if [ -f as$(exeext) ] ; then (cd stage4 && $(LN_S) ../as$(exeext) .) ; else true ; fi - -if [ -f ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../ld$(exeext) .) ; else true ; fi - -if [ -f collect-ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi - -rm -f stage4/libgcc.a stage4/libgcc_eh.a - -cp libgcc.a stage4 - -if $(RANLIB_TEST_FOR_TARGET) ; then \ - $(RANLIB_FOR_TARGET) stage4/libgcc.a; \ - else true; fi - -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage4; \ - if $(RANLIB_TEST_FOR_TARGET) ; then \ - $(RANLIB_FOR_TARGET) stage4/libgcc_eh.a; \ - else true; fi; fi - -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \ - cp stage4/$${f} . ; \ - else true; \ - fi; done -stage4: force stage4-start lang.stage4 - -# Copy just the executable files from a particular stage into a subdirectory, -# and delete the object files. Use this if you're just verifying a version -# that is pretty sure to work, and you are short of disk space. -risky-stage1: stage1 - -$(MAKE) clean - -risky-stage2: stage2 - -$(MAKE) clean - -risky-stage3: stage3 - -$(MAKE) clean - -risky-stage4: stage4 - -$(MAKE) clean - -#In GNU Make, ignore whether `stage*' exists. -.PHONY: stage1 stage2 stage3 stage4 clean maintainer-clean TAGS bootstrap -.PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4 - -force: - -# --- -# The enquire rules are still useful for building new float-anything.h. -# Special flags for compiling enquire. -# We disable optimization to make floating point more reliable. -ENQUIRE_CFLAGS = -DNO_MEM -DNO_LONG_DOUBLE_IO -O0 -ENQUIRE_LDFLAGS = $(LDFLAGS) - -# Enquire target (This is a variable so that a target can choose not to -# build it.) -ENQUIRE = enquire - -# Test to see whether <float.h> exists in the system header files, -# and is not derived from GCC. -FLOAT_H_TEST = \ - [ -f $(SYSTEM_HEADER_DIR)/float.h ] && \ - if grep 'ifndef _FLOAT_H___' $(SYSTEM_HEADER_DIR)/float.h >/dev/null; \ - then false; \ - else :; fi -# We pretend to not having a usable <float.h>, hence disable the FLOAT_H_TEST -# to ensure, we're emitting a full blown <float.h> ourselves. -FLOAT_H_TEST = false - -# Used to compile enquire with standard cc, but have forgotten why. -# Let's try with GCC. -enquire: enquire.o $(GCC_PARTS) - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ENQUIRE_LDFLAGS) enquire.o -o $@ -enquire.o: $(srcdir)/enquire.c $(GCC_PASSES) stmp-int-hdrs - if $(FLOAT_H_TEST); then \ - rm -f include/float.h; \ - SYS_FLOAT_H_WRAP=1; \ - else :; \ - SYS_FLOAT_H_WRAP=0; \ - fi; \ - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) $(ENQUIRE_CFLAGS) \ - -DSYS_FLOAT_H_WRAP=$$SYS_FLOAT_H_WRAP \ - -I. -c $(srcdir)/enquire.c $(OUTPUT_OPTION) - -# Create float.h source for the native machine. -# Make it empty if we can use the system float.h without changes. -float.h-nat: enquire - -./enquire -f > tmp-float.h - grep '#define [^_]' tmp-float.h >/dev/null || true > tmp-float.h - mv tmp-float.h float.h-nat - -# Create a dummy float.h source for a cross-compiler. -# ??? This isn't used anymore. Should we create config/float-unkn.h -# and make that the default float_format in configure? -float.h-cross: - echo "#ifndef __GCC_FLOAT_NOT_NEEDED" > t-float.h-cross - echo "#error float.h values not known for cross-compiler" >> t-float.h-cross - echo "#endif" >> t-float.h-cross - mv t-float.h-cross float.h-cross - -# Rules for generating translated message descriptions. -# Disabled by autoconf if the tools are not available. - -XGETTEXT = @XGETTEXT@ -GMSGFMT = @GMSGFMT@ -MSGMERGE = msgmerge - -PACKAGE = @PACKAGE@ -CATALOGS = @CATALOGS@ - -.PHONY: build- install- build-po install-po update-po - -# Dummy rules to deal with dependencies produced by use of -# "build-@POSUB@" and "install-@POSUB@" above, when NLS is disabled. -build-: ; @true -install-: ; @true - -build-po: $(CATALOGS) - -# This notation should be acceptable to all Make implementations used -# by people who are interested in updating .po files. -update-po: $(CATALOGS:.gmo=.pox) - -# N.B. We do not attempt to copy these into $(srcdir). The snapshot -# script does that. -.po.gmo: - -test -d po || mkdir po - $(GMSGFMT) --statistics -o $@ $< - -# The new .po has to be gone over by hand, so we deposit it into -# build/po with a different extension. -# If build/po/$(PACKAGE).pot exists, use it (it was just created), -# else use the one in srcdir. -.po.pox: - -test -d po || mkdir po - $(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \ - then echo po/$(PACKAGE).pot; \ - else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@ - -# This rule has to look for .gmo modules in both srcdir and -# the cwd, and has to check that we actually have a catalog -# for each language, in case they weren't built or included -# with the distribution. -install-po: - $(SHELL) $(srcdir)/mkinstalldirs $(DESTDIR)$(datadir) - for cat in $(CATALOGS); do \ - lang=`basename $$cat | sed 's/\.gmo$$//'`; \ - if [ -f $$cat ]; then :; \ - elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \ - else continue; \ - fi; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - echo $(SHELL) $(srcdir)/mkinstalldirs $(DESTDIR)$$dir; \ - $(SHELL) $(srcdir)/mkinstalldirs $(DESTDIR)$$dir || exit 1; \ - echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ - $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ - done + chmod -R og=u . || chmod og=u `find . -print` + # + -rm -f $(PACKAGE)-$(VER) + ln -s proto-toplev $(PACKAGE)-$(VER) + +.PHONY: do-tar-bz2 +do-tar-bz2: + echo "==> Making $(PACKAGE)-$(VER).tar.bz2" + -rm -f $(PACKAGE)-$(VER).tar.bz2 + find $(PACKAGE)-$(VER) -follow -name CVS -prune -o -type f -print \ + | tar cTfh - $(PACKAGE)-$(VER).tar + $(BZIPPROG) -v -9 $(PACKAGE)-$(VER).tar + +.PHONY: do-md5sum +do-md5sum: + echo "==> Adding md5 checksum to top-level directory" + cd proto-toplev && find * -follow -name CVS -prune -o -type f -print \ + | xargs $(MD5PROG) > ../md5.sum + mv md5.sum proto-toplev + +.PHONY: do-djunpack +do-djunpack: + echo "==> Adding updated djunpack.bat to top-level directory" + echo - 's /gdb-[0-9\.]*/gdb-'"$(VER)"'/' + sed < djunpack.bat > djunpack.new \ + -e 's/gdb-[0-9][0-9\.]*/gdb-'"$(VER)"'/' + mv djunpack.new djunpack.bat + -rm -f proto-toplev/djunpack.bat + ln -s ../djunpack.bat proto-toplev/djunpack.bat + +TEXINFO_SUPPORT= texinfo/texinfo.tex +DIST_SUPPORT= $(DEVO_SUPPORT) $(TEXINFO_SUPPORT) + +.PHONY: gas.tar.bz2 +GAS_SUPPORT_DIRS= bfd include libiberty opcodes intl setup.com makefile.vms mkdep +gas.tar.bz2: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas + $(MAKE) -f Makefile.in taz TOOL=gas \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GAS_SUPPORT_DIRS)" + +# The FSF "binutils" release includes gprof and ld. +.PHONY: binutils.tar.bz2 +BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld gprof intl setup.com makefile.vms mkdep +binutils.tar.bz2: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils + $(MAKE) -f Makefile.in taz TOOL=binutils \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS)" + +.PHONY: gas+binutils.tar.bz2 +GASB_SUPPORT_DIRS= $(GAS_SUPPORT_DIRS) binutils ld gprof +gas+binutils.tar.bz2: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas + $(MAKE) -f Makefile.in taz TOOL=gas \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GASB_SUPPORT_DIRS)" + +GNATS_SUPPORT_DIRS=include libiberty send-pr +gnats.tar.bz2: $(DIST_SUPPORT) $(GNATS_SUPPORT_DIRS) gnats + $(MAKE) -f Makefile.in taz TOOL=gnats \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GNATS_SUPPORT_DIRS)" + +.PHONY: gdb.tar.bz2 +GDB_SUPPORT_DIRS= bfd include libiberty mmalloc opcodes readline sim utils intl +gdb.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb + $(MAKE) -f Makefile.in gdb-taz TOOL=gdb \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GDB_SUPPORT_DIRS)" + +.PHONY: dejagnu.tar.bz2 +DEJAGNU_SUPPORT_DIRS= tcl expect libiberty +dejagnu.tar.bz2: $(DIST_SUPPORT) $(DEJAGNU_SUPPORT_DIRS) dejagnu + $(MAKE) -f Makefile.in taz TOOL=dejagnu \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(DEJAGNU_SUPPORT_DIRS)" + +.PHONY: gdb+dejagnu.tar.bz2 +GDBD_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl expect dejagnu +gdb+dejagnu.tar.bz2: $(DIST_SUPPORT) $(GDBD_SUPPORT_DIRS) gdb + $(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE=gdb+dejagnu \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(GDBD_SUPPORT_DIRS)" + +.PHONY: insight.tar.bz2 +INSIGHT_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl tk itcl tix libgui +insight.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb + $(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE=insight \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)" + +.PHONY: insight+dejagnu.tar.bz2 +INSIGHTD_SUPPORT_DIRS= $(INSIGHT_SUPPORT_DIRS) expect dejagnu +insight+dejagnu.tar.bz2: $(DIST_SUPPORT) $(INSIGHTD_SUPPORT_DIRS) gdb + $(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE="insight+dejagnu" \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(INSIGHTD_SUPPORT_DIRS)" + +.PHONY: newlib.tar.bz2 +NEWLIB_SUPPORT_DIRS=libgloss +# taz configures for the sun4 target which won't configure newlib. +# We need newlib configured so that the .info files are made. +# Unfortunately, it is not enough to just configure newlib separately: +# taz will build the .info files but since SUBDIRS won't contain newlib, +# distclean won't be run (leaving Makefile, config.status, and the tmp files +# used in building the .info files, eg: *.def, *.ref). +# The problem isn't solvable however without a lot of extra work because +# target libraries are built in subdir $(target_alias) which gets nuked during +# the make distclean. For now punt on the issue of shipping newlib info files +# with newlib net releases and wait for a day when some native target (sun4?) +# supports newlib (if only minimally). +newlib.tar.bz2: $(DIST_SUPPORT) $(NEWLIB_SUPPORT_DIRS) newlib + $(MAKE) -f Makefile.in taz TOOL=newlib \ + MD5PROG="$(MD5PROG)" \ + SUPPORT_FILES="$(NEWLIB_SUPPORT_DIRS)" \ + DEVO_SUPPORT="$(DEVO_SUPPORT) COPYING.NEWLIB" newlib + +.NOEXPORT: +MAKEOVERRIDES= -# Rule for regenerating the message template (gcc.pot). -# Instead of forcing everyone to edit POTFILES.in, which proved impractical, -# this rule has no dependencies and always regenerates gcc.pot. This is -# relatively harmless since the .po files do not directly depend on it. -# Note that exgettext has an awk script embedded in it which requires a -# fairly modern (POSIX-compliant) awk. -# The .pot file is left in the build directory. -$(PACKAGE).pot: po/$(PACKAGE).pot -po/$(PACKAGE).pot: force - -test -d po || mkdir po - $(MAKE) po-generated - AWK=$(AWK) $(SHELL) $(srcdir)/po/exgettext \ - $(XGETTEXT) $(PACKAGE) $(srcdir) +# end of Makefile.in |