# Makefile for GNU C compiler.
# Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995
-# 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+# 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
#This file is part of GNU CC.
MAKEINFO = @MAKEINFO@
MAKEINFOFLAGS =
TEXI2DVI = texi2dvi
+TEXI2POD = $(srcdir)/../contrib/texi2pod.pl
+POD2MAN = pod2man --center="GNU" --release="gcc-$(version)" --section=1
# For GNUmake: let us decide what gets passed to recursive makes.
MAKEOVERRIDES =
@SET_MAKE@
gcc_tooldir = @gcc_tooldir@
# Since tooldir does not exist at build-time, use -B$(build_tooldir)/bin/
build_tooldir = $(exec_prefix)/$(target_alias)
-# Directory in which the compiler finds g++ includes.
-gcc_gxx_include_dir= @gcc_gxx_include_dir@
+# Directory in which the compiler finds target-independent g++ includes.
+gcc_gxx_include_dir = @gcc_gxx_include_dir@
+# Directory in which the compiler finds target-dependent g++ includes.
+gcc_gxx_target_include_dir = $(build_tooldir)/include/@libstdcxx_incdir@
# Directory to search for site-specific includes.
includedir = $(local_prefix)/include
# assertdir is overridden in cross-make.
# so don't override it here.
USE_COLLECT2 = collect2$(exeext)
-# configure sets this to 'libcpp.a' if cpplib is being merged into
-# C-family front ends.
-MAYBE_CPPLIB = @maybe_cpplib@
-
# List of extra C and assembler files to add to libgcc1.a.
# Assembler files should have names ending in `.asm'.
LIB1FUNCS_EXTRA =
# Control whether Info documentation is built and installed.
BUILD_INFO = @BUILD_INFO@
-INSTALL_INFO = @INSTALL_INFO@
# Additional directories of header files to run fixincludes on.
# These should be directories searched automatically by default
# Directory to link to, when using the target `maketest'.
DIR = ../gcc
-# Guaranteed to not exist when not passing md through cpp.
-# This value is overridden directly by configure.
-MD_FILE = md-cpp-not-used
-
# 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.
# out of the way of the other rules for compiling the same source files.
HOST_PREFIX_1=loser-
HOST_CC=$(CC)
-HOST_CFLAGS=$(ALL_CFLAGS)
+# If you change any of the following variables, check whether a
+# similar change is needed in build-make.
+HOST_CFLAGS=$(ALL_CFLAGS) -DGENERATOR_FILE
HOST_CLIB=$(CLIB)
HOST_LDFLAGS=$(LDFLAGS)
HOST_CPPFLAGS=$(ALL_CPPFLAGS)
$(USE_HOST_VFPRINTF) $(USE_HOST_DOPRINT) $(HOST_CLIB)
HOST_RTL = $(HOST_PREFIX)rtl.o $(HOST_PREFIX)bitmap.o \
- $(HOST_PREFIX)ggc-none.o gensupport.o hashtab.o
+ $(HOST_PREFIX)ggc-none.o gensupport.o hashtab.o safe-ctype.o
HOST_PRINT = $(HOST_PREFIX)print-rtl.o
HOST_ERRORS = $(HOST_PREFIX)errors.o
#\f
# 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 = 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-semantics.o c-dump.o $(MAYBE_CPPLIB)
+ c-convert.o c-aux-info.o c-common.o c-semantics.o c-dump.o libcpp.a \
+ $(C_TARGET_OBJS)
# Language-specific object files for C.
C_OBJS = c-parse.o c-lang.o $(C_AND_OBJC_OBJS)
mbchar.o splay-tree.o graph.o sbitmap.o resource.o hash.o predict.o \
lists.o ggc-common.o $(GGC) stringpool.o simplify-rtx.o ssa.o bb-reorder.o \
sibcall.o conflict.o timevar.o ifcvt.o dominance.o dependence.o dce.o \
- hashtab.o
+ sched-vis.o sched-deps.o sched-rgn.o sched-ebb.o hashtab.o
BACKEND = toplev.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 genoutput genrecog genextract genflags gencodes genconfig \
- genpeep gengenrtl gencheck
+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)
# Files to be copied away after each stage in building.
STAGESTUFF = *$(objext) insn-flags.h insn-config.h insn-codes.h \
_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
-# The files that "belong" in CONFIG_H are deliberately omitted
+# 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
+# a file generated by gencodes.
+# The files that "belong" in GCONFIG_H are deliberately omitted
# because having them there would not be useful in actual practice.
# All they would do is cause complete recompilation every time
# one of the machine description files is edited.
# That may or may not be what one wants to do.
# If it is, rm *.o is an easy way to do it.
-# CONFIG_H = $(host_xm_file) $(tm_file)
-CONFIG_H =
+# GCONFIG_H = $(host_xm_file) $(tm_file)
+GCONFIG_H =
+CONFIG_H = $(GCONFIG_H) insn-codes.h
MACHMODE_H = machmode.h machmode.def
RTL_BASE_H = rtl.h rtl.def $(MACHMODE_H)
RTL_H = $(RTL_BASE_H) genrtl.h
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
+ $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
-vfprintf.o: $(srcdir)/../libiberty/vfprintf.c $(CONFIG_H) system.h
+vfprintf.o: $(srcdir)/../libiberty/vfprintf.c $(GCONFIG_H) system.h
rm -f vfprintf.c
$(LN_S) $(srcdir)/../libiberty/vfprintf.c vfprintf.c
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) \
vfprintf.c $(OUTPUT_OPTION)
splay-tree.o: $(srcdir)/../libiberty/splay-tree.c \
$(srcdir)/../include/splay-tree.h $(srcdir)/../include/libiberty.h
rm -f splay-tree.c
$(LN_S) $(srcdir)/../libiberty/splay-tree.c splay-tree.c
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) \
splay-tree.c $(OUTPUT_OPTION)
underscore.c: s-under ; @true
# A file used by all variants of C.
-c-common.o : c-common.c $(CONFIG_H) system.h $(TREE_H) \
+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) diagnostic.h
cppspec.o: cppspec.c $(CONFIG_H) system.h $(GCC_H)
tree-check.h: s-check ; @true
-s-check : gencheck $(srcdir)/move-if-change
- ./gencheck > tmp-check.h
+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
touch s-check
-gencheck : gencheck.o $(HOST_LIBDEPS)
+gencheck$(build_exeext) : gencheck.o $(HOST_LIBDEPS)
$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \
gencheck.o $(HOST_LIBS)
stringpool.o: stringpool.c $(CONFIG_H) system.h $(TREE_H) $(OBSTACK_H) \
flags.h toplev.h
-ggc-none.o: ggc-none.c $(CONFIG_H) $(RTL_H) $(GGC_H)
+ggc-none.o: ggc-none.c $(GCONFIG_H) $(RTL_H) $(GGC_H)
+ $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
-obstack.o: $(srcdir)/../libiberty/obstack.c $(CONFIG_H)
+obstack.o: $(srcdir)/../libiberty/obstack.c $(GCONFIG_H)
rm -f obstack.c
$(LN_S) $(srcdir)/../libiberty/obstack.c obstack.c
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) \
obstack.c $(OUTPUT_OPTION)
prefix.o: prefix.c $(CONFIG_H) system.h Makefile prefix.h
-DTARGET_NAME=\"$(target_alias)\" \
-c $(srcdir)/toplev.c
-rtl.o : rtl.c $(CONFIG_H) system.h $(RTL_H) bitmap.h $(GGC_H) toplev.h
+rtl.o : rtl.c $(GCONFIG_H) system.h $(RTL_H) bitmap.h $(GGC_H) toplev.h
+ $(CC) -c $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
-print-rtl.o : print-rtl.c $(CONFIG_H) system.h $(RTL_H) hard-reg-set.h \
+print-rtl.o : print-rtl.c $(GCONFIG_H) system.h $(RTL_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)
-errors.o : errors.c $(CONFIG_H) system.h errors.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 defaults.h $(EXPR_H) hard-reg-set.h $(REGS_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
-bitmap.o : bitmap.c $(CONFIG_H) system.h $(RTL_H) flags.h $(BASIC_BLOCK_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
varray.o : varray.c $(CONFIG_H) system.h varray.h $(RTL_H) $(TREE_H) bitmap.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) insn-flags.h $(BASIC_BLOCK_H) toplev.h
-haifa-sched.o : haifa-sched.c $(CONFIG_H) system.h $(RTL_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) insn-flags.h toplev.h $(RECOG_H) except.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
+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
+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
+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)
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 insn-flags.h insn-codes.h gstab.h except.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 \
- insn-flags.h output.h $(INSN_ATTR_H) insn-codes.h system.h toplev.h function.h
+ insn-flags.h output.h $(INSN_ATTR_H) insn-codes.h system.h toplev.h \
+ function.h sched-int.h
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
$(out_file) $(OUTPUT_OPTION)
alloca.o: $(srcdir)/../libiberty/alloca.c
rm -f alloca.c
$(LN_S) $(srcdir)/../libiberty/alloca.c alloca.c
- $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(ALLOCA_FLAGS) \
- -c alloca.c
+ $(CC) $(ALL_CFLAGS) -DGENERATOR_FILE $(ALL_CPPFLAGS) $(INCLUDES) \
+ $(ALLOCA_FLAGS) -c alloca.c
$(ALLOCA_FINISH)
#\f
# Generate header and source files from the machine description,
# trailing `;'), we call true for each.
insn-config.h: s-config ; @true
-s-config : $(md_file) genconfig $(srcdir)/move-if-change
- ./genconfig $(md_file) > tmp-config.h
+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
touch s-config
insn-flags.h: s-flags ; @true
-s-flags : $(md_file) genflags $(srcdir)/move-if-change
- ./genflags $(md_file) > tmp-flags.h
+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
touch s-flags
insn-codes.h: s-codes ; @true
-s-codes : $(md_file) gencodes $(srcdir)/move-if-change
- ./gencodes $(md_file) > tmp-codes.h
+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
touch s-codes
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-emit.c
insn-emit.c: s-emit ; @true
-s-emit : $(md_file) genemit $(srcdir)/move-if-change
- ./genemit $(md_file) > tmp-emit.c
+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
touch s-emit
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-recog.c
insn-recog.c: s-recog ; @true
-s-recog : $(md_file) genrecog $(srcdir)/move-if-change
- ./genrecog $(md_file) > tmp-recog.c
+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
touch s-recog
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-opinit.c
insn-opinit.c: s-opinit ; @true
-s-opinit : $(md_file) genopinit $(srcdir)/move-if-change
- ./genopinit $(md_file) > tmp-opinit.c
+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
touch s-opinit
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-extract.c
insn-extract.c: s-extract ; @true
-s-extract : $(md_file) genextract $(srcdir)/move-if-change
- ./genextract $(md_file) > tmp-extract.c
+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
touch s-extract
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-peep.c
insn-peep.c: s-peep ; @true
-s-peep : $(md_file) genpeep $(srcdir)/move-if-change
- ./genpeep $(md_file) > tmp-peep.c
+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
touch s-peep
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-attrtab.c
insn-attr.h: s-attr ; @true
-s-attr : $(md_file) genattr $(srcdir)/move-if-change
- ./genattr $(md_file) > tmp-attr.h
+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
touch s-attr
insn-attrtab.c: s-attrtab ; @true
-s-attrtab : $(md_file) genattrtab $(srcdir)/move-if-change
- ./genattrtab $(md_file) > tmp-attrtab.c
+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
touch s-attrtab
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-output.c
insn-output.c: s-output ; @true
-s-output : $(md_file) genoutput $(srcdir)/move-if-change
- ./genoutput $(md_file) > tmp-output.c
+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
touch s-output
genrtl.c genrtl.h : s-genrtl
@true # force gnu make to recheck modification times.
-s-genrtl: gengenrtl $(srcdir)/move-if-change $(RTL_BASE_H)
- ./gengenrtl -h >tmp-genrtl.h
+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 >tmp-genrtl.c
+ ./gengenrtl$(build_exeext) >tmp-genrtl.c
$(SHELL) $(srcdir)/move-if-change tmp-genrtl.c genrtl.c
touch s-genrtl
#\f
# about the target machine. They do depend on config.h itself,
# since that describes the host machine.
-# Pass the md file through cpp if the target requests it.
-$(MD_FILE): $(MD_DEPS)
- rm -f $@
- $(MD_CPP) $(MD_CPPFLAGS) $(md_file) | sed 's/^# /; /g' > tmp-$@
- mv tmp-$@ $@
-
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
-hashtab.o: $(srcdir)/../libiberty/hashtab.c $(CONFIG_H)
+hashtab.o: $(srcdir)/../libiberty/hashtab.c $(GCONFIG_H)
rm -f hashtab.c
$(LN_S) $(srcdir)/../libiberty/hashtab.c hashtab.c
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) hashtab.c
-genconfig : genconfig.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+safe-ctype.o: $(srcdir)/../libiberty/safe-ctype.c $(GCONFIG_H)
+ rm -f safe-ctype.c
+ $(LN_S) $(srcdir)/../libiberty/safe-ctype.c safe-ctype.c
+ $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) safe-ctype.c
+
+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)
system.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genconfig.c
-genflags : genflags.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+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)
system.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genflags.c
-gencodes : gencodes.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+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)
system.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/gencodes.c
-genemit : genemit.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+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) $(build_xm_file) system.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genemit.c
-genopinit : genopinit.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+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)
system.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genopinit.c
-genrecog : genrecog.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+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) $(build_xm_file) \
system.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genrecog.c
-genextract : genextract.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+
+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)
system.h insn-config.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genextract.c
-genpeep : genpeep.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+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) $(build_xm_file) system.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genpeep.c
-genattr : genattr.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+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) $(build_xm_file) system.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattr.c
-genattrtab : genattrtab.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+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)
system.h errors.h $(GGC_H) gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattrtab.c
-genoutput : genoutput.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
+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)
system.h errors.h gensupport.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genoutput.c
-gengenrtl : gengenrtl.o $(HOST_LIBDEPS)
+gengenrtl$(build_exeext) : gengenrtl.o $(HOST_LIBDEPS)
$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \
gengenrtl.o $(HOST_LIBS)
# If we are not cross-building, gen* use the same .o's that cc1 will use,
# and HOST_PREFIX_1 is `foobar', just to ensure these rules don't conflict
# with the rules for rtl.o, alloca.o, etc.
-$(HOST_PREFIX_1)rtl.o: $(srcdir)/rtl.c $(CONFIG_H) system.h $(RTL_H) \
+$(HOST_PREFIX_1)rtl.o: $(srcdir)/rtl.c $(GCONFIG_H) system.h $(RTL_H) \
bitmap.h $(GGC_H) toplev.h $(HASHTAB_H)
rm -f $(HOST_PREFIX)rtl.c
sed -e 's/config[.]h/hconfig.h/' $(srcdir)/rtl.c > $(HOST_PREFIX)rtl.c
$(LN_S) $(srcdir)/../libiberty/alloca.c $(HOST_PREFIX)alloca.c
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)alloca.c
-$(HOST_PREFIX_1)obstack.o: $(srcdir)/../libiberty/obstack.c $(CONFIG_H)
+$(HOST_PREFIX_1)obstack.o: $(srcdir)/../libiberty/obstack.c $(GCONFIG_H)
rm -f $(HOST_PREFIX)obstack.c
sed -e 's/config[.]h/hconfig.h/' $(srcdir)/../libiberty/obstack.c > $(HOST_PREFIX)obstack.c
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)obstack.c
$(top_builddir)/intl/libintl.a: intl.all
# Make sure all the headers are there for xgettext to scan.
-$(INTL_TARGETS): $(srcdir)/c-parse.c
+$(INTL_TARGETS): $(CONFIG_H) $(srcdir)/c-parse.c
intl.all intl.install intl.uninstall \
intl.mostlyclean intl.clean intl.distclean intl.maintainer-clean:
PREPROCESSOR_DEFINES = \
-DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
-DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
+ -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_target_include_dir)\" \
-DLOCAL_INCLUDE_DIR=\"$(includedir)\" \
-DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \
-DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\"
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
+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.
$(FIXINCSRCDIR)/server.h $(FIXINCSRCDIR)/inclhack.def specs.ready
(MAKE="$(MAKE)"; srcdir=`cd $(srcdir)/fixinc && pwd` ; \
CC="$(CC)"; CFLAGS="$(CFLAGS)"; LDFLAGS="$(LDFLAGS)"; \
- export MAKE srcdir CC CFLAGS LDFLAGS; \
- cd ./fixinc && $(SHELL) $${srcdir}/mkfixinc.sh $(target))
+ 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
fi
GEN_PROTOS_OBJS = gen-protos.o scan.o
-gen-protos: $(GEN_PROTOS_OBJS)
- ${HOST_CC} $(HOST_CFLAGS) $(HOST_LDFLAGS) -o gen-protos \
+gen-protos$(build_exeext): $(GEN_PROTOS_OBJS)
+ ${HOST_CC} $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \
$(GEN_PROTOS_OBJS) ../libiberty/libiberty.a
gen-protos.o: gen-protos.c scan.h $(build_xm_file) system.h
scan.o: scan.c scan.h $(build_xm_file) system.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/scan.c
-xsys-protos.h: $(GCC_PASSES) $(srcdir)/sys-protos.h deduced.h gen-protos Makefile
+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
# Remake the info files.
doc: $(BUILD_INFO) gccbug
-info: cpp.info gcc.info lang.info c-tree.info
+info: $(srcdir)/cpp.info $(srcdir)/gcc.info lang.info $(srcdir)/c-tree.info
-cpp.info: $(srcdir)/cpp.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o cpp.info $(srcdir)/cpp.texi
+$(srcdir)/cpp.info: $(srcdir)/cpp.texi
+ cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -o cpp.info cpp.texi
-gcc.info: $(srcdir)/gcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
+$(srcdir)/gcc.info: $(srcdir)/gcc.texi $(srcdir)/extend.texi $(srcdir)/install.texi \
$(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi \
$(srcdir)/tm.texi $(srcdir)/gcov.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o gcc.info $(srcdir)/gcc.texi
+ cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -o gcc.info gcc.texi
-c-tree.info: $(srcdir)/c-tree.texi
- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(srcdir) -o c-tree.info \
- $(srcdir)/c-tree.texi
+$(srcdir)/c-tree.info: $(srcdir)/c-tree.texi
+ cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -o c-tree.info \
+ c-tree.texi
dvi: gcc.dvi cpp.dvi lang.dvi
texindex cpp.??
TEXINPUTS=${texidir}:$(srcdir):$$TEXINPUTS tex cpp.texi
+$(srcdir)/gcov.1: $(srcdir)/gcov.texi
+ $(TEXI2POD) < $(srcdir)/gcov.texi > gcov.pod
+ ($(POD2MAN) gcov.pod > $(srcdir)/gcov.1.T$$$$ && \
+ mv -f $(srcdir)/gcov.1.T$$$$ $(srcdir)/gcov.1) || \
+ (rm -f $(srcdir)/gcov.1.T$$$$ && exit 1)
+ rm -f gcov.pod
+
#\f
# Deletion of files made during compilation.
# There are four levels of this:
-rm -f collect collect2 mips-tfile mips-tdump alloca.s
# Delete files generated for fixproto
-rm -rf fix-header xsys-protos.h deduced.h tmp-deduced.h \
- gen-protos fixproto.list fixtmp.* fixhdr.ready
+ 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)
-rm -rf libgcc
-rm -f *.dvi
-rm -f */*.dvi
- -if [ -f md.pre-cpp ]; then \
- rm -f md ; \
- fi
# Delete the include directory.
-rm -rf include
# Delete files used by the "multilib" facility (including libgcc subdirs).
INTL_DISTCLEAN = intl.distclean
distclean: clean $(INTL_DISTCLEAN) lang.distclean
-rm -f tm.h tm_p.h config.h auto-host.h auto-build.h tconfig.h hconfig.h
- -rm -f md cstamp-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 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 splay-tree.c obstack.c
+ -rm -f cxxmain.c splay-tree.c obstack.c alloca.c hashtab.c safe-ctype.c
-rm -f mklibgcc libgcc.map gccbug .gdbinit configargs.h
- -rm -f c-tree.info c-tree.info-1 c-tree.info-2 c-tree.info-3
+ -rm -f gcov.pod
-rm -f fixinc/Makefile
-rmdir cp f java objc fixinc intl po 2>/dev/null
$(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.info* cpp.??s cpp.*aux
- -rm -f gcc.info* gcc.??s gcc.*aux
+ -rm -f cpp.??s cpp.*aux
+ -rm -f gcc.??s gcc.*aux
+ -rm -f $(srcdir)/cpp.info* $(srcdir)/gcc.info* $(srcdir)/c-tree.info*
+ -rm -f $(srcdir)/gcov.1
#\f
# Entry points `install' and `uninstall'.
# Also use `install-collect2' to install collect2 when the config files don't.
# Install the driver last so that the window when things are
# broken is small.
install-normal: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \
- $(INSTALL_CPP) install-man $(INSTALL_INFO) intl.install \
+ $(INSTALL_CPP) install-man install-info intl.install \
lang.install-normal install-driver
# Do nothing while making gcc with a cross-compiler. The person who
# to do the install.
install-info: doc installdirs lang.install-info
-rm -f $(infodir)/cpp.info* $(infodir)/gcc.info*
- for f in cpp.info* gcc.info*; do \
- $(INSTALL_DATA) $$f $(infodir)/$$f; \
- done
+ if [ -f $(srcdir)/gcc.info ]; then \
+ for f in $(srcdir)/cpp.info* $(srcdir)/gcc.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; do \
- install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
+ 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*
# Install the man pages.
-install-man: installdirs $(srcdir)/gcc.1 $(srcdir)/cpp.1 lang.install-man
+install-man: installdirs $(srcdir)/gcc.1 $(srcdir)/cpp.1 $(srcdir)/gcov.1 lang.install-man
-if [ -f gcc-cross$(exeext) ] ; then \
rm -f $(man1dir)/$(GCC_CROSS_NAME)$(manext); \
$(INSTALL_DATA) $(srcdir)/gcc.1 $(man1dir)/$(GCC_CROSS_NAME)$(manext); \
fi
-rm -f $(man1dir)/cpp$(manext)
-$(INSTALL_DATA) $(srcdir)/cpp.1 $(man1dir)/cpp$(manext)
+ -rm -f $(man1dir)/gcov$(manext)
+ -$(INSTALL_DATA) $(srcdir)/gcov.1 $(man1dir)/gcov$(manext)
-chmod a-x $(man1dir)/cpp$(manext)
# Install the library.
check-po:
if test -f cp/Makefile && test -f f/Makefile && \
test -f java/Makefile && test -f objc/Makefile; then \
- make -C po check-po; \
+ $(MAKE) -C po check-po; \
fi
# These exist for maintenance purposes.
# 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
+ -$(MAKE) clean
risky-stage2: stage2
- -make clean
+ -$(MAKE) clean
risky-stage3: stage3
- -make clean
+ -$(MAKE) clean
risky-stage4: stage4
- -make clean
+ -$(MAKE) clean
#In GNU Make, ignore whether `stage*' exists.
.PHONY: stage1 stage2 stage3 stage4 clean maintainer-clean TAGS bootstrap