This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RFC: No recursion into language subdirectories
- To: gcc-patches at gcc dot gnu dot org
- Subject: RFC: No recursion into language subdirectories
- From: Zack Weinberg <zack at wolery dot cumb dot org>
- Date: Mon, 19 Jun 2000 23:14:57 -0700
The appended patch changes the Makefiles so we never recurse into
language subdirectories. It's got some issues; I'm not looking for
integration as is, but would appreciate comments. I simply moved all
the logic from each subdirectory's Makefile.in to its Make-lang.in,
tweaked all the rules and deps to be relative to the parent, and then
cleaned up the resulting mess. The objc directory already works more
or less like this.
The biggest advantage, as I see it, is simplicity. Counting only
Makefiles, this patch deletes ~1000 lines of text. (The changes
elsewhere tend to obscure the issue.) The new text - mostly in
Make-lang.in-s - is simpler and easier to read. Just getting rid of
all the $(subdir)/../ in the deps makes an enormous difference.
All the duplicated text in subdir Makefile.in-s disappears, and with
it go any inconsistency bugs present or future. Dependency bugs are
more likely to be caught and fixed.
Building runs slightly faster, since Make never has to re-execute
itself and build up all its internal state again. A *lot* more
parallelism is visible to make -j. Even on a uniprocessor I had it
crunching through all the front ends at once. (And tripping over
dependency bugs, but that's another story.)
It was necessary to rearrange things in the Fortran and C++ front ends
a bit. In Fortran, the .j files are gone, except for str-*.j which
are generated. We lose the ability to autogenerate dependencies in
there, but I suspect that logic was broken anyway. In C++, new[12].cc
are split into one file per library function, and libgcc.mk has been
taught how to build them itself rather than call back to the master
Makefile to do it. I believe both these changes are a net win
irrespective of what's done to the Makefiles, and I may pull them out
and submit them separately.
The biggest disadvantage is that we lose the ability to prune the
warning switches in the language subdirs. That was being done by
adjusting CFLAGS when we recursed. Some makes can adjust variables
for individual targets, but that feature is not POSIX, and has at
least two incompatible syntaxes either of which is a syntax error for
makes that don't support it. Adding -pedantic and -Wtraditional to
language subdirs triples the number of warnings, with the top ten
being
449 function macro ??? must be used with arguments in traditional C
223 ANSI C forbids braced-groups within expressions
178 ANSI C forbids constructor expressions
141 ANSI C forbids conditional expr with only one void side
65 comparison between signed and unsigned
61 pointer targets in assignment differ in signedness
52 Use of ANSI string concatenation
51 comma at end of enumerator list
39 pointer targets in passing arg ??? of `???' differ in signedness
17 promoted argument `???' doesn't match prototype
This is either a catastrophe, or no big deal, depending how you look
at it. (The 'ANSI C forbids ...' warnings need to be looked at;
that's not just the usual "works on all sufficiently Unixy platforms"
issues, but use of GCC-specific extensions.)
We can still prune warnings for libgcc.
The subdir Makefiles are not terribly useful anymore. They'll rebuild
their front end if you do a blind make in that directory, and that's
about it. We may want to just eliminate them entirely. This would
speed up rerunning config.status a bit, too.
Then there are the bugs this exposes. Starting with the biggest: to
build front ends other than C, we now must have a compiler that
supports -c and -o together. Otherwise, the non-C object files will
be dropped in the top level directory, and the link won't find them.
Worse, some front ends have object files with the same name as a
backend module, so e.g. cp/expr.o will clobber expr.o.
This is not a problem in a native build, we can add an -o $@ to the
.c.o suffix rule in stage2 and beyond. In a cross build, I've put it
in unconditionally; I doubt anyone wants to build cross compilers with
a cc that doesn't handle -c with -o. A slightly tidier fix would
include autoconf logic to find out whether the bootstrap compiler can
handle it, and set OUTPUT_OPTION appropriately.
Next, if you try to build the C++ front end with any version of gcc
prior to 2.96 20000418 or so, you'll trip over a bug in cccp.c where
#line confuses the header-file search logic, so it won't be able to
find the right headers to compile parse.c.
But if you try to build the Fortran front end with any version of gcc
*after* that date, on a platform with malloc.h, you'll trip over a bug
in cpplib where <foo.h> and "foo.h" are not properly distinguished. I
should have a patch for this by tomorrow. You can work around it, in
the meantime, by applying Jakub's patch for the same bug (which is not
clean enough for a permanent fix, IMO) or by commenting out the block
in system.h that includes malloc.h. Why are we using malloc.h anyway?
zw
(sorry, no changelog)
===================================================================
Index: Makefile.in
--- Makefile.in 2000/06/13 20:06:39 1.466
+++ Makefile.in 2000/06/20 06:08:29
@@ -24,12 +24,18 @@
# uninstall, TAGS, mostlyclean, clean, distclean, maintainer-clean,
# stage1, stage2, stage3, stage4.
+# 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.
+# Put this before anything that might be misconstrued as a suffix rule.
+.SUFFIXES:
+.SUFFIXES: .c .o
+
# 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@
+VPATH = $(srcdir)
# Pointer to the GCC Project website
website=http://gcc.gnu.org
@@ -118,11 +124,6 @@ TEXI2DVI = texi2dvi
MAKEOVERRIDES =
@SET_MAKE@
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
# How to invoke ranlib.
RANLIB = ranlib
# Test to use to see whether ranlib exists on the system.
@@ -469,7 +470,6 @@ HOST_PREFIX_1=loser-
HOST_CC=$(CC)
HOST_CFLAGS=$(ALL_CFLAGS)
HOST_CLIB=$(CLIB)
-HOST_INTLLIBS=$(INTLLIBS)
HOST_LDFLAGS=$(LDFLAGS)
HOST_CPPFLAGS=$(ALL_CPPFLAGS)
HOST_ALLOCA=$(ALLOCA)
@@ -577,7 +577,7 @@ LIBDEPS= $(INTLLIBS) $(OBSTACK) $(ALLOCA
# Likewise, for use in the tools that must run on this machine
# even if we are cross-building GCC.
# We don't use USE_ALLOCA because backquote expansion doesn't work in deps.
-HOST_LIBDEPS= $(HOST_PREFIX)$(HOST_INTLLIBS) $(HOST_PREFIX)$(HOST_OBSTACK) $(HOST_PREFIX)$(HOST_ALLOCA) $(HOST_PREFIX)$(HOST_MALLOC) $(HOST_PREFIX)$(HOST_VFPRINTF) $(HOST_PREFIX)$(HOST_DOPRINT)
+HOST_LIBDEPS= $(HOST_PREFIX)$(HOST_OBSTACK) $(HOST_PREFIX)$(HOST_ALLOCA) $(HOST_PREFIX)$(HOST_MALLOC) $(HOST_PREFIX)$(HOST_VFPRINTF) $(HOST_PREFIX)$(HOST_DOPRINT)
# How to link with both our special library facilities
# and the system's installed libraries.
@@ -586,8 +586,7 @@ LIBS = $(OBSTACK) $(USE_ALLOCA) $(MALLOC
# Likewise, for use in the tools that must run on this machine
# even if we are cross-building GCC.
HOST_LIBS = $(USE_HOST_OBSTACK) $(USE_HOST_ALLOCA) $(USE_HOST_MALLOC) \
- $(HOST_INTLLIBS) $(USE_HOST_VFPRINTF) $(USE_HOST_DOPRINT) \
- $(HOST_CLIB)
+ $(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
@@ -603,7 +602,7 @@ INCLUDES = -I. -I$(srcdir) -I$(srcdir)/c
# Always use -I$(srcdir)/config when compiling.
.c.o:
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
+ $(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.
@@ -682,8 +681,8 @@ C_AND_OBJC_OBJS = c-lex.o c-pragma.o c-d
C_OBJS = c-parse.o c-lang.o $(C_AND_OBJC_OBJS)
# Language-independent object files.
-OBJS = diagnostic.o \
- toplev.o version.o tree.o print-tree.o stor-layout.o fold-const.o \
+
+OBJS = diagnostic.o version.o tree.o print-tree.o stor-layout.o fold-const.o \
function.o stmt.o except.o expr.o calls.o expmed.o explow.o optabs.o real.o \
builtins.o intl.o varasm.o rtl.o print-rtl.o rtlanal.o emit-rtl.o genrtl.o \
dbxout.o sdbout.o dwarfout.o dwarf2out.o xcoffout.o bitmap.o alias.o gcse.o \
@@ -696,6 +695,8 @@ OBJS = diagnostic.o \
lists.o ggc-common.o $(GGC) simplify-rtx.o ssa.o bb-reorder.o \
sibcall.o conflict.o timevar.o ifcvt.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.
@@ -718,7 +719,7 @@ STAGESTUFF = *$(objext) insn-flags.h ins
$(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross$(exeext) cc1obj$(exeext) \
enquire$(exeext) protoize$(exeext) unprotoize$(exeext) \
specs collect2$(exeext) $(USE_COLLECT2) underscore.c \
- gcov$(exeext) *.[0-9][0-9].* *.[si] libcpp.a libgcc libgcc.mk \
+ gcov$(exeext) *.[0-9][0-9].* *.[si] libcpp.a libbackend.a libgcc libgcc.mk \
$(LANG_STAGESTUFF)
# Members of libgcc1.a.
@@ -775,6 +776,7 @@ 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
+
#
# Language makefile fragments.
@@ -800,10 +802,6 @@ TIMEVAR_H = timevar.h timevar.def
# 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.
-.SUFFIXES:
-.SUFFIXES: .c .o
Makefile: $(srcdir)/Makefile.in config.status $(srcdir)/version.c \
$(xmake_file) $(tmake_file) $(LANG_MAKEFILES)
@@ -891,12 +889,13 @@ libgcc1-test.o: libgcc1-test.c native xg
# Recompile all the language-independent object files.
# This is used only if the user explicitly asks for it.
-compilations: ${OBJS}
+compilations: $(BACKEND)
-# Create a list of the language-independent object files so the language
-# subdirectories needn't mention their names explicitly.
-stamp-objlist: $(OBJS)
- echo " $(OBJS)" | sed -e 's, \([a-z0-9]\), ../\1,g' -e 's/\.o/$(objext)/g' >stamp-objlist
+# Like libcpp.a, this archive is strictly for the host.
+libbackend.a: $(OBJS)
+ -rm -rf libbackend.a
+ $(AR) $(AR_FLAGS) libbackend.a $(OBJS)
+ if $(RANLIB_TEST) ; then $(RANLIB) libbackend.a ; else true ; fi
# We call this executable `xgcc' rather than `gcc'
# to avoid confusion if the current directory is in the path
@@ -927,8 +926,9 @@ specs: xgcc$(exeext)
gcc-cross: xgcc$(exeext)
cp xgcc$(exeext) gcc-cross$(exeext)
-cc1$(exeext): $(P) $(OBJS) $(C_OBJS) $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(C_OBJS) $(LIBS)
+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
@@ -978,6 +978,7 @@ libgcc.a: $(LIBGCC_DEPS)
RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)" \
RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \
LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)" \
+ LIBGCC2_CXXFLAGS="$(CXXFLAGS) $(GXX_ABI_FLAG)" \
INCLUDES="$(INCLUDES)" MAYBE_USE_COLLECT2="$(MAYBE_USE_COLLECT2)" \
CONFIG_H="$(CONFIG_H)" MACHMODE_H="$(MACHMODE_H)" \
LIB1ASMSRC='$(LIB1ASMSRC)' \
@@ -1780,9 +1781,8 @@ LIBCPP_OBJS = cpplib.o cpphash.o cpperro
LIBCPP_DEPS = cpplib.h cpphash.h intl.h system.h
-# All the other archives built/used by this makefile are for targets. This
-# one is strictly for the host.
-#
+# 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)
@@ -2720,7 +2720,24 @@ diff:
gcc-$(oldversion) gcc-$(version) > gcc-$(oldversion)-$(version).diff
# A list of files to be destroyed during "lean" builds.
-VOL_FILES=`echo $(OBJS) $(C_OBJS) $(LIBCPP_OBJS) *.c *.h gen*`
+VOL_FILES=`echo $(BACKEND) $(OBJS) $(C_OBJS) $(LIBCPP_OBJS) *.c *.h gen*`
+
+# Switches to hand to make during any stage pass.
+# This used to define ALLOCA as empty, but that would lead to bad results
+# for a subsequent `make install' since that would not have ALLOCA empty.
+# To prevent `make install' from compiling alloca.o and then relinking cc1
+# because alloca.o is newer, we permit these recursive makes to compile
+# alloca.o. Then cc1 is newer, so it won't have to be relinked.
+BOOT_CMDLINE = \
+ CFLAGS="$(WARN_CFLAGS) $(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" \
+ libdir=$(libdir) LANGUAGES="$(LANGUAGES)" OUTPUT_OPTION='-o $$@'
+# Switches to hand to make during specific stage passes.
+BOOT_2_CMDLINE = \
+CC="stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" STAGE_PREFIX=stage1/
+BOOT_3_CMDLINE = \
+CC="stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" STAGE_PREFIX=stage2/
+BOOT_4_CMDLINE = \
+CC="stage3/xgcc$(exeext) -Bstage3/ -B$(build_tooldir)/bin/" STAGE_PREFIX=stage3/
bootstrap bootstrap-lean: force
# Only build the C compiler for stage1, because that is the only one that
@@ -2729,27 +2746,22 @@ bootstrap bootstrap-lean: force
$(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" LANG_LIB2FUNCS=
$(MAKE) stage1
-if test $@ = bootstrap-lean; then cd stage1 ; rm -f $(VOL_FILES); else true; fi
-# This used to define ALLOCA as empty, but that would lead to bad results
-# for a subsequent `make install' since that would not have ALLOCA empty.
-# To prevent `make install' from compiling alloca.o and then relinking cc1
-# because alloca.o is newer, we permit these recursive makes to compile
-# alloca.o. Then cc1 is newer, so it won't have to be relinked.
- $(MAKE) CC="stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CFLAGS="$(WARN_CFLAGS) $(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage1/ LANGUAGES="$(LANGUAGES)"
+ $(MAKE) $(BOOT_2_CMDLINE) $(BOOT_CMDLINE)
$(MAKE) stage2
-if test $@ = bootstrap-lean; then rm -rf stage1; cd stage2 ; rm -f $(VOL_FILES); else true; fi
- $(MAKE) CC="stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" CFLAGS="$(WARN_CFLAGS) $(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage2/ LANGUAGES="$(LANGUAGES)"
+ $(MAKE) $(BOOT_3_CMDLINE) $(BOOT_CMDLINE)
bootstrap2 bootstrap2-lean: force
- $(MAKE) CC="stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CFLAGS="$(WARN_CFLAGS) $(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage1/ LANGUAGES="$(LANGUAGES)"
+ $(MAKE) $(BOOT_2_CMDLINE) $(BOOT_CMDLINE)
$(MAKE) stage2
-if test $@ = bootstrap2-lean; then rm -rf stage1; cd stage2 ; rm -f $(VOL_FILES); else true; fi
- $(MAKE) CC="stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" CFLAGS="$(WARN_CFLAGS) $(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage2/ LANGUAGES="$(LANGUAGES)"
+ $(MAKE) $(BOOT_3_CMDLINE) $(BOOT_CMDLINE)
bootstrap3 bootstrap3-lean: force
- $(MAKE) CC="stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" CFLAGS="$(WARN_CFLAGS) $(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage2/ LANGUAGES="$(LANGUAGES)"
+ $(MAKE) $(BOOT_3_CMDLINE) $(BOOT_CMDLINE)
bootstrap4 bootstrap4-lean: force
- $(MAKE) CC="stage3/xgcc$(exeext) -Bstage3/ -B$(build_tooldir)/bin/" CFLAGS="$(WARN_CFLAGS) $(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) STAGE_PREFIX=stage3/ LANGUAGES="$(LANGUAGES)"
+ $(MAKE) $(BOOT_4_CMDLINE) $(BOOT_CMDLINE)
# Compare the object files in the current directory with those in the
# stage2 directory.
===================================================================
Index: cross-make
--- cross-make 2000/01/13 00:37:05 1.7
+++ cross-make 2000/06/20 06:08:29
@@ -12,3 +12,6 @@ ALL = all.cross
# Don't install assert.h in /usr/local/include.
assertdir = $(tooldir)/include
+
+# We must have a compiler that supports -c and -o together.
+OUTPUT_OPTION = -o $@
===================================================================
Index: mklibgcc.in
--- mklibgcc.in 2000/06/06 01:56:06 1.13
+++ mklibgcc.in 2000/06/20 06:08:30
@@ -25,8 +25,9 @@
# EXTRA_MULTILIB_PARTS
# Make needs VPATH to be literal.
-echo 'srcdir = @srcdir@'
-echo 'VPATH = @srcdir@'
+srcdir=@srcdir@
+echo "srcdir = $srcdir"
+echo "VPATH = $srcdir"
echo 'EQ = ='
echo
echo 'force:'
@@ -90,9 +91,10 @@ case X"$LIBGCC1" in
Xlibgcc1-asm.a)
for name in $LIB1ASMFUNCS; do
for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`/
+ [ "$dir" = "./" ] && dir=
flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- out="libgcc/${dir}/${name}${objext}"
+ out="libgcc/${dir}${name}${objext}"
echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)'
echo " $gcc_compile" $flags -DL$name -xassembler-with-cpp \
@@ -152,9 +154,10 @@ libgcc2_objs=""
for name in $LIB2FUNCS; do
for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`/
+ [ "$dir" = "./" ] && dir=
flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- out="libgcc/${dir}/${name}${objext}"
+ out="libgcc/${dir}${name}${objext}"
echo $out: $libgcc2_c_dep
echo " $gcc_compile" '$(MAYBE_USE_COLLECT2)' $flags -DL$name \
@@ -165,9 +168,10 @@ done
for name in $LIB2FUNCS_EH; do
for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`/
+ [ "$dir" = "./" ] && dir=
flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- out="libgcc/${dir}/${name}${objext}"
+ out="libgcc/${dir}${name}${objext}"
echo $out: $libgcc2_c_dep
echo " $gcc_compile" '$(MAYBE_USE_COLLECT2)' -fexceptions \
@@ -179,9 +183,10 @@ done
if [ "$FPBIT" ]; then
for name in $FPBIT_FUNCS; do
for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`/
+ [ "$dir" = "./" ] && dir=
flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- out="libgcc/${dir}/${name}${objext}"
+ out="libgcc/${dir}${name}${objext}"
echo $out: $FPBIT $fpbit_c_dep
echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
@@ -194,9 +199,10 @@ fi
if [ "$DPBIT" ]; then
for name in $DPBIT_FUNCS; do
for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`/
+ [ "$dir" = "./" ] && dir=
flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- out="libgcc/${dir}/${name}${objext}"
+ out="libgcc/${dir}${name}${objext}"
echo $out: $DPBIT $fpbit_c_dep
echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
@@ -206,71 +212,80 @@ if [ "$DPBIT" ]; then
done
fi
+XLIB2ADD=
for file in $LIB2ADD; do
- name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'`
- oname=`echo $name | sed -e 's,.*/,,'`
+ case $file in
+ *.txt)
+ XLIB2ADD="$XLIB2ADD `cat $file`" ;;
+ *)
+ XLIB2ADD="$XLIB2ADD $file";;
+ esac
+done
- if [ ${name}.txt = ${file} ]; then
- fprime=`cat $file`
- for f in $fprime; do
+for file in $XLIB2ADD; do
+ oname=`echo $file | sed -e 's,^.*/,,' -e 's,\.[^.]*$,,`
+ known=no
+ xflags=
+ lastout=
+
+ case $file in
+ *.c) known=yes;;
+ *.S) known=yes;;
+ *.asm) known=yes; xflags="-xassembler-with-cpp";;
+ *.cc) known=yes; xflags='$(LIBGCC2_CXXFLAGS)';;
+ esac
- lastout="stmp-dirs $file"
- for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
- flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- out="libgcc/${dir}/${f}"
-
- # Depend on previous out to serialize all sub-makes of this
- # target file. This because ./$f is used as a temporary in
- # each case before being moved to libgcc/$dir/.
- echo $out: $lastout
- echo " $make_compile" \\
- echo ' LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\
- echo ' MULTILIB_CFLAGS="'$flags'"' $f
- echo " mv $f $out"
+ for ml in $MULTILIBS; do
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`/
+ [ "$dir" = "./" ] && dir=
+ flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- lastout="$out"
- done
+ if [ $known = yes ]; then
+ out="libgcc/${dir}${oname}${objext}"
+ libgcc2_objs="$libgcc2_objs ${oname}${objext}"
+ src=`echo $file | sed -e 's,^'"$srcdir"'/,,' -e 's,^,$(srcdir)/,'`
- libgcc2_objs="$libgcc2_objs $f"
- done
- else
- for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
- flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- out="libgcc/${dir}/${oname}${objext}"
- if [ ${name}.asm = ${file} ]; then
- flags="$flags -xassembler-with-cpp"
- fi
+ echo $out: stmp-dirs $src
+ echo " $gcc_compile" $xflags $flags -c $src -o $out
+ else
+ out="libgcc/${dir}${file}"
+ libgcc2_objs="$libgcc2_objs $file"
- echo $out: stmp-dirs $file
- echo " $gcc_compile" $flags -c $file -o $out
- done
- libgcc2_objs="$libgcc2_objs ${oname}${objext}"
- fi
+ # Depend on previous out to serialize all sub-makes of this
+ # target file. This because $file is used as a temporary in
+ # each case before being moved to libgcc/$dir/.
+ echo $out: $lastout
+ echo " $make_compile" \\
+ echo ' LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\
+ echo ' MULTILIB_CFLAGS="'$flags'"' $file
+ echo " mv $file $out"
+ lastout="$out"
+ fi
+ done
done
for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`/
+ [ "$dir" = "./" ] && dir=
libgcc_objs=""
for o in $libgcc1_objs; do
if [ "$LIBGCC1" = libgcc1-asm.a ]; then
- libgcc_objs="$libgcc_objs libgcc/${dir}/$o"
+ libgcc_objs="$libgcc_objs libgcc/${dir}$o"
else
libgcc_objs="$libgcc_objs libgcc/$o"
fi
done
for o in $libgcc2_objs; do
- libgcc_objs="$libgcc_objs libgcc/${dir}/$o"
+ libgcc_objs="$libgcc_objs libgcc/${dir}$o"
done
echo ""
- echo "${dir}/libgcc.a: $libgcc_objs"
- echo " -rm -rf ${dir}/libgcc.a"
- echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc.a $libgcc_objs
+ echo "${dir}libgcc.a: $libgcc_objs"
+ echo " -rm -rf ${dir}libgcc.a"
+ echo ' $(AR_CREATE_FOR_TARGET)' ${dir}libgcc.a $libgcc_objs
echo ' if $(RANLIB_TEST_FOR_TARGET) ; then' \\
- echo ' $(RANLIB_FOR_TARGET)' ${dir}/libgcc.a ';' \\
+ echo ' $(RANLIB_FOR_TARGET)' ${dir}libgcc.a ';' \\
echo ' else true; fi;'
done
@@ -295,9 +310,10 @@ echo ' if [ -f stmp-dirs ]; then true; e
for f in $EXTRA_MULTILIB_PARTS; do
lastout="stmp-dirs force"
for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`/
+ [ "$dir" = "./" ] && dir=
flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- out="$dir/$f"
+ out="${dir}${f}"
# Depend on previous out to serialize all sub-makes of this
# target file. This because ./$f is used as a temporary in
===================================================================
Index: ch/Make-lang.in
--- ch/Make-lang.in 2000/06/13 21:31:26 1.14
+++ ch/Make-lang.in 2000/06/20 06:08:30
@@ -93,11 +93,58 @@ chill: $(srcdir)/ch/chill.in Makefile
chill-cross: $(srcdir)/ch/chill.in
touch $@
-cc1chill$(exeext): $(P) $(CHILL_SRCS) $(LIBDEPS) stamp-objlist \
- insn-config.h insn-flags.h insn-attr.h insn-codes.h \
- c-typeck.o c-aux-info.o c-common.o c-iterate.o \
- ggc-callbacks.o
- cd ch; $(MAKE) $(LANG_FLAGS_TO_PASS) $(CHILL_FLAGS_TO_PASS) ../cc1chill$(exeext)
+CHILL_OBJS = ch/parse.o ch/actions.o ch/except.o ch/grant.o ch/lang.o \
+ ch/tree.o ch/lex.o ch/decl.o ch/typeck.o ch/convert.o ch/expr.o ch/loop.o \
+ ch/tasking.o ch/timing.o ch/inout.o ch/satisfy.o ch/ch-version.o \
+ ggc-callbacks.o
+
+cc1chill$(exeext): $(CHILL_OBJS) $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(CHILL_OBJS) \
+ $(BACKEND) $(LIBS)
+
+# CHILL language specific files.
+
+CHILL_TREE_H = $(TREE_H) ch/ch-tree.h ch/ch-tree.def
+CHILL_DEPS = $(CONFIG_H) system.h toplev.h $(CHILL_TREE_H)
+
+# Note: CHILL requires two sets of keywords, one all uppercase and
+# one all lowercase. The hash table ends up with both sets in it.
+ch/hash.h: ch/gperf
+ sed -e '1,/^%%/d' $(srcdir)/ch/gperf | tr "[a-z]" "[A-Z]" > gperf.tmp2
+ cat $(srcdir)/ch/gperf gperf.tmp2 > gperf.tmp
+ gperf -L C -F ', 0, 0, 0' -D -E -S1 -p -j1 -i 1 -g -o -t -k'*' \
+ gperf.tmp > $(srcdir)/ch/hash.h || ( \
+ echo "Please update your 'gperf' from the GCC infrastructure:" ; \
+ echo " ftp://gcc.gnu.org/pub/gcc/infrastructure/gperf*" ; \
+ exit 1 ) >&2
+ $(RM) gperf.tmp gperf.tmp2
+
+ch/actions.o: ch/actions.c $(CHILL_DEPS) $(RTL_H) $(EXPR_H) flags.h input.h \
+ ch/actions.h ch/lex.h
+ch/convert.o: ch/convert.c $(CHILL_DEPS) flags.h convert.h
+ch/decl.o: ch/decl.c $(CHILL_DEPS) flags.h ch/lex.h
+ch/except.o: ch/except.c $(CHILL_DEPS) $(RTL_H)
+ch/expr.o: ch/expr.c $(CHILL_DEPS) $(RTL_H) $(EXPR_H) flags.h \
+ convert.h ch/lex.h
+ch/grant.o: ch/grant.c $(CHILL_DEPS) $(RTL_H) flags.h input.h output.h \
+ ch/actions.h ch/lex.h
+ch/inout.o: ch/inout.c $(CHILL_DEPS) flags.h input.h
+ch/lang.o: ch/lang.c $(CHILL_DEPS) $(RTL_H) $(EXPR_H) input.h ch/lex.h
+ch/lex.o: ch/lex.c $(CHILL_DEPS) $(RTL_H) flags.h input.h dwarfout.h \
+ ch/parse.h ch/lex.h ch/hash.h
+ch/loop.o: ch/loop.c $(CHILL_DEPS) $(RTL_H) flags.h input.h ch/lex.h
+ch/parse.o: ch/parse.c $(CHILL_DEPS) ch/parse.h ch/actions.h ch/lex.h \
+ ch/tasking.h
+ch/satisfy.o: ch/satisfy.c $(CHILL_DEPS) flags.h ch/lex.h
+ch/timing.o: ch/timing.c $(CHILL_DEPS) $(RTL_H) flags.h input.h ch/lex.h
+ch/tasking.o: ch/tasking.c $(CHILL_DEPS) $(RTL_H) flags.h input.h ch/lex.h
+ch/tree.o: ch/tree.c $(CHILL_DEPS)
+ch/typeck.o: ch/typeck.c $(CHILL_DEPS) $(EXPR_H) flags.h output.h \
+ insn-codes.h ch/lex.h
+
+ch/ch-version.o: ch/ch-version.c
+ch/ch-version.c: Makefile
+ echo 'const char * const gnuchill_version = "$(GNUCHILL_VERSION)";' > $@
#
# Build hooks:
@@ -189,9 +236,8 @@ CHILL.stage4: stage4-start
# This target creates the files that can be rebuilt, but go in the
# distribution anyway. It then copies the files to the distdir directory.
-CHILL.distdir:
+CHILL.distdir: ch/hash.h
mkdir tmp/ch
- cd ch ; $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) hash.h
cd ch; \
for file in *[0-9a-zA-Z+]; do \
ln $$file ../tmp/ch >/dev/null 2>&1 || cp $$file ../tmp/ch; \
===================================================================
Index: ch/Makefile.in
--- ch/Makefile.in 2000/06/11 04:29:47 1.25
+++ ch/Makefile.in 2000/06/20 06:08:30
@@ -1,335 +1,43 @@
-# Makefile for GNU CHILL compiler.
-# Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1998,
-# 1999 Free Software Foundation, Inc.
+# Generic Makefile.in for language subdirectory.
+# Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000
+# Free Software Foundation, Inc.
-#This file is part of GNU CC.
-
-#GNU CC 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.
-
-#GNU CC 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 GNU CC; see the file COPYING. If not, write to
-#the Free Software Foundation, 59 Temple Place - Suite 330,
-#Boston, MA 02111-1307, USA. */
-
-# The makefile built from this file lives in the language subdirectory.
-# It's purpose is to provide support for:
+# This file is part of GNU CC.
#
-# 1) recursion where necessary, and only then (building .o's), and
-# 2) building and debugging cc1 from the language subdirectory, and
-# 3) nothing else.
+# GNU CC 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.
#
-# The parent makefile handles all other chores, with help from the
-# language makefile fragment, of course.
+# GNU CC 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.
#
-# The targets for external use are:
-# all, TAGS, ???mostlyclean, ???clean.
-
-# Suppress smart makes who think they know how to automake Yacc files
-.y.c:
-
-
-# Variables that exist for you to override.
-# See below for how to change them for certain systems.
-
-# Various ways of specifying flags for compilations:
-# CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
-# BOOT_CFLAGS is the value of CFLAGS to pass
-# to the stage2 and stage3 compilations
-# XCFLAGS is used for most compilations but not when using the GCC just built.
-XCFLAGS =
-CFLAGS = -g
-BOOT_CFLAGS = -O $(CFLAGS)
-# These exists to be overridden by the x-* and t-* files, respectively.
-X_CFLAGS =
-T_CFLAGS =
-
-X_CPPFLAGS =
-T_CPPFLAGS =
-
-CC = @CC@
-AR = ar
-AR_FLAGS = rc
-SHELL = /bin/sh
-MAKEINFO = makeinfo
-TEXI2DVI = texi2dvi
-
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
-# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
-# It omits XCFLAGS, and specifies -B./.
-# It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.
-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS)
-
-# Tools to use when building a cross-compiler.
-# These are used because `configure' appends `cross-make'
-# to the makefile when making a cross-compiler.
-
-# CYGNUS LOCAL: we don't use cross-make. Instead we use the tools
-# from the build tree, if they are available.
-# program_transform_name and objdir are set by configure.in.
-program_transform_name =
-objdir = .
+# You should have received a copy of the GNU General Public License along with
+# GNU CC; see the file COPYING. If not, write to the Free Software
+# Foundation, 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# The Makefile built from this file lives in a language subdirectory.
+# Its purpose is to indirect to the parent Makefile in case the user
+# chooses to make things in the language subdirectory.
-target=@target@
-xmake_file=@dep_host_xmake_file@
-tmake_file=@dep_tmake_file@
-#version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c`
-#mainversion=`sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/' < $(srcdir)/version.c`
+# Change this line as appropriate.
+frontend = cc1chill
-# Directory where sources are, from where we are.
+# You shouldn't need to modify anything below.
srcdir = @srcdir@
-VPATH = @srcdir@
-
-# CYGNUS LOCAL
-# Directory where texinfo.tex lives
-# texidir = $(srcdir)/../../texinfo
-
-# Top build directory, relative to here.
-top_builddir = ..
-
-# Internationalization library.
-INTLLIBS = @INTLLIBS@
-
-# Additional system libraries to link with.
-CLIB=
-
-# Choose the real default target.
-ALL=all
-
-# 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.
-all: all.indirect
-
-# This tells GNU Make version 3 not to put all variables in the environment.
-.NOEXPORT:
-
-# sed inserts variable overrides after the following line.
-####target overrides
-@target_overrides@
-####host overrides
-@host_overrides@
-####cross overrides
-@cross_defines@
-@cross_overrides@
-####build overrides
-@build_overrides@
-####site overrides
-# @site_overrides@
-#
-# Now figure out from those variables how to compile and link.
-
-all.indirect: Makefile ../chill ../cc1chill$(exeext)
-
-# IN_GCC tells obstack.h that we are using gcc's <stddef.h> file.
-INTERNAL_CFLAGS = $(CROSS) -DIN_GCC @extra_c_flags@
-
-# This is the variable actually used when we compile.
-ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS)
-
-# Likewise.
-ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
-
-# This is where we get libiberty.a from.
-LIBIBERTY = ../../libiberty/libiberty.a
-
-# How to link with both our special library facilities
-# and the system's installed libraries.
-LIBS = $(LIBIBERTY) $(CLIB) $(INTLLIBS)
-LIBDEPS = $(INTLLIBS) $(LIBIBERTY)
-
-# Specify the directories to be searched for header files.
-# Both . and srcdir are used, in that order,
-# so that tm.h and config.h will be found in the compilation
-# subdirectory rather than in the source directory.
-INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)/../../include
-
-# Flags to pass to recursive makes.
-# ??? $(CC) may need some work to handle stage[123].
-# ??? The choices here will need some experimenting with.
-FLAGS_TO_PASS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "AR_FOR_TARGET=$(AR_FOR_TARGET)" \
- "BISON=$(BISON)" \
- "BISONFLAGS=$(BISONFLAGS)" \
- "CC=$(CC)" \
- "CFLAGS=$(CFLAGS)" \
- "GCC_FOR_TARGET=$(CC_FOR_TARGET)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LEX=$(LEX)" \
- "LEXFLAGS=$(LEXFLAGS)" \
- "MAKEINFO=$(MAKEINFO)" \
- "MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \
- "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
- "RANLIB_TEST_FOR_TARGET=$(RANLIB_TEST_FOR_TARGET)" \
- "SHELL=$(SHELL)" \
- "exec_prefix=$(exec_prefix)" \
- "prefix=$(prefix)" \
- "tooldir=$(tooldir)" \
- "bindir=$(bindir)" \
- "libsubdir=$(libsubdir)"
-
-# Always use -I$(srcdir)/config when compiling.
-.c.o:
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-
-# This tells GNU make version 3 not to export all the variables
-# defined in this file into the environment.
-.NOEXPORT:
-#
-# Lists of files for various purposes.
-
-# Language-specific object files for CHILL
-
-#C_OBJS = ../cpplib.o ../cppexp.o ../cpphash.o ../cpperror.o
-
-CHILL_OBJS = parse.o actions.o except.o grant.o lang.o \
- tree.o lex.o decl.o typeck.o convert.o expr.o loop.o \
- tasking.o timing.o inout.o satisfy.o ch-version.o \
- ../ggc-callbacks.o
-
-# Language-independent object files.
-OBJS = `cat ../stamp-objlist`
-OBJDEPS = ../stamp-objlist
-
-../cc1chill$(exeext): $(P) $(CHILL_OBJS) $(OBJDEPS) $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(CHILL_OBJS) \
- $(OBJS) $(C_OBJS) $(LIBS)
-
-# This executable is used in the CHILL regression
-# test script
-utils/printf : $(srcdir)/utils/printf.c
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $<
-
-#
-# This is the top-level trigger for a CHILL regression test.
-# It also builds those tools needed for CHILL regression testing.
-#
-check: ../cc1chill$(exeext) utils/printf
- cd ..; $(MAKE) $(FLAGS_TO_PASS) xgcc gcov cpp cc1 ld
- $(srcdir)/regression.sh -d -p
-
-clean-tests:
- cd testsuite/execute; $(MAKE) clean
- cd testsuite/execute/oe; $(MAKE) clean
- cd testsuite/compile/elektra; $(MAKE) clean
- cd testsuite/compile/votrics; $(MAKE) clean
- cd testsuite/compile; $(MAKE) clean
- cd testsuite/noncompile; $(MAKE) clean
- cd testsuite/examples; $(MAKE) clean
-
-mostlyclean:
- test -d testsuite && $(MAKE) clean-tests
- rm -f *.o
-
-clean: mostlyclean
-
-#
-Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
- cd ..; $(SHELL) config.status
-
-native: config.status ../cc1chill$(exeext) ../chill
-#
-# Compiling object files from source files.
-
-# Note that dependencies on obstack.h are not written
-# because that file is not part of GCC.
-
-# CHILL language specific files.
-
-EXPR_H = $(srcdir)/../expr.h ../insn-codes.h
-RTL_H = $(srcdir)/../rtl.h $(srcdir)/../rtl.def \
- $(srcdir)/../machmode.h $(srcdir)/../machmode.def
-TREE_H = $(srcdir)/../tree.h $(srcdir)/../real.h $(srcdir)/../tree.def \
- $(srcdir)/../machmode.h $(srcdir)/../machmode.def
-CHILL_TREE_H = $(TREE_H) ch-tree.h ch-tree.def
-
-# hash.h really depends on $(srcdir)/gperf.
-# But this would screw things for people that don't have gperf,
-# if gperf got touched, say.
-# Thus you have to remove hash.h to force it to be re-made.
-# Note: CHILL requires two sets of keywords, one all uppercase and
-# one all lowercase. The hash table ends up with both sets in it.
-$(srcdir)/hash.h:
- sed -e '1,/^%%/d' < $(srcdir)/gperf | \
- sed '/^[^a-zA-Z]/d' | tr "[a-z]" "[A-Z]" > gperf.tmp2
- cat $(srcdir)/gperf gperf.tmp2 > gperf.tmp
- gperf -L C -F ', 0, 0, 0' -D -E -S1 -p -j1 -i 1 -g -o -t -k'*' \
- gperf.tmp > $(srcdir)/hash.h || ( \
- echo "Please update your 'gperf' from the GCC infrastructure" >&2 ; \
- echo " ftp://sourceware.cygnus.com/pub/egcs/infrastructure/gperf*" >&2 ; \
- exit 1 )
- $(RM) gperf.tmp gperf.tmp2
-
-actions.o : actions.c $(CONFIG_H) $(CHILL_TREE_H) actions.h $(RTL_H) \
- lex.h $(srcdir)/../flags.h $(srcdir)/../input.h \
- $(EXPR_H) $(srcdir)/../system.h $(srcdir)/../toplev.h
-convert.o : convert.c $(CONFIG_H) $(CHILL_TREE_H) $(srcdir)/../flags.h \
- $(srcdir)/../tree.h $(srcdir)/../system.h $(srcdir)/../toplev.h \
- $(srcdir)/../convert.h
-decl.o : decl.c $(CONFIG_H) $(CHILL_TREE_H) $(srcdir)/../flags.h lex.h \
- $(srcdir)/../system.h $(srcdir)/../toplev.h
-except.o : except.c $(CONFIG_H) $(srcdir)/../tree.h $(RTL_H) $(CHILL_TREE_H) \
- $(srcdir)/../system.h $(srcdir)/../toplev.h
-expr.o : expr.c $(CONFIG_H) $(RTL_H) $(CHILL_TREE_H) $(srcdir)/../flags.h \
- $(EXPR_H) $(srcdir)/../tree.h lex.h $(srcdir)/../system.h \
- $(srcdir)/../toplev.h
-grant.o: grant.c $(CONFIG_H) $(CHILL_TREE_H) $(RTL_H) $(srcdir)/../flags.h \
- $(srcdir)/../input.h lex.h actions.h $(srcdir)/../system.h \
- $(srcdir)/../toplev.h $(srcdir)/../output.h
-inout.o : inout.c $(CONFIG_H) $(CHILL_TREE_H) $(srcdir)/../flags.h \
- $(srcdir)/../input.h $(srcdir)/../system.h $(srcdir)/../toplev.h
-lang.o : lang.c $(CONFIG_H) $(CHILL_TREE_H) $(srcdir)/../input.h lex.h \
- $(srcdir)/../system.h $(srcdir)/../toplev.h $(EXPR_H) $(RTL_H)
-lex.o : lex.c $(CONFIG_H) $(CHILL_TREE_H) $(RTL_H) $(srcdir)/../flags.h \
- $(srcdir)/../input.h $(srcdir)/parse.h $(srcdir)/../system.h \
- $(srcdir)/../toplev.h lex.h $(srcdir)/../dwarfout.h hash.h
-loop.o : loop.c $(CONFIG_H) $(RTL_H) $(CHILL_TREE_H) lex.h \
- $(srcdir)/../flags.h $(srcdir)/../input.h \
- $(srcdir)/../tree.h $(srcdir)/../system.h $(srcdir)/../toplev.h
-parse.o : parse.c $(CONFIG_H) $(CHILL_TREE_H) parse.h \
- lex.h actions.h tasking.h $(srcdir)/../system.h $(srcdir)/../toplev.h
-satisfy.o : satisfy.c $(CONFIG_H) $(CHILL_TREE_H) $(srcdir)/../tree.h \
- $(srcdir)/../flags.h lex.h $(srcdir)/../system.h $(srcdir)/../toplev.h
-timing.o : timing.c $(CONFIG_H) $(CHILL_TREE_H) $(RTL_H) $(srcdir)/../flags.h \
- $(srcdir)/../input.h lex.h $(srcdir)/../system.h $(srcdir)/../toplev.h
-tasking.o : tasking.c $(CONFIG_H) $(CHILL_TREE_H) $(RTL_H) \
- $(srcdir)/../flags.h $(srcdir)/../input.h \
- lex.h $(srcdir)/../system.h $(srcdir)/../toplev.h
-tree.o : tree.c $(CONFIG_H) $(CHILL_TREE_H) $(srcdir)/../system.h \
- $(srcdir)/../toplev.h
-typeck.o : typeck.c $(CONFIG_H) $(CHILL_TREE_H) ../insn-codes.h \
- $(srcdir)/../expr.h ../insn-codes.h $(srcdir)/../flags.h lex.h \
- $(srcdir)/../system.h $(srcdir)/../toplev.h $(srcdir)/../output.h
-ch-version.o : ch-version.c
-ch-version.c : Makefile
- echo 'const char * const gnuchill_version = "$(GNUCHILL_VERSION)";' > $@
-
-## This is ugly, but I don't want GNU make to put these variables in
-## the environment. Older makes will see this as a set of targets
-## with no dependencies and no actions.
-unexport CHILLFLAGS CHILL_LIB CHILL_FOR_TARGET :
+VPATH = $(srcdir)
+exeext = @host_exeext@
-
-# These exist for maintenance purposes.
+all: frontend
+frontend compiler: ../$(frontend)$(exeext)
-# Update the tags table.
-TAGS: force
- cd $(srcdir); \
- etags *.y *.h *.c *.l ../*.h ../*.c; \
+../$(frontend)$(exeext):
+ cd .. && $(MAKE) $(frontend)$(exeext)
-.PHONY: TAGS
+.DEFAULT:
+ cd .. && $(MAKE) $@
-force:
+.PHONY: all frontend compiler
+.SUFFIXES:
===================================================================
Index: cp/Make-lang.in
--- cp/Make-lang.in 2000/06/14 17:26:18 1.55
+++ cp/Make-lang.in 2000/06/20 06:08:30
@@ -38,10 +38,6 @@
# - define the names for selecting the language in LANGUAGES.
#
# Extra flags to pass to recursive makes.
-CXX_FLAGS_TO_PASS = \
- "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CXX_FOR_TARGET=$(CXX_FOR_TARGET)"
# Actual names to use when installing a native compiler.
CXX_INSTALL_NAME = `t='$(program_transform_name)'; echo c++ | sed $$t`
@@ -61,11 +57,11 @@ CXX_EXTRA_HEADERS = $(srcdir)/cp/inc/typ
$(srcdir)/cp/inc/new $(srcdir)/cp/inc/new.h $(srcdir)/cp/inc/cxxabi.h
# Extra code to include in libgcc2.
-CXX_LIB2FUNCS = tinfo.o tinfo2.o new.o opnew.o opnewnt.o opvnew.o opvnewnt.o \
- opdel.o opdelnt.o opvdel.o opvdelnt.o exception.o vec.o
-CXX_LIB2SRCS = $(srcdir)/cp/new.cc $(srcdir)/cp/new1.cc $(srcdir)/cp/new2.cc \
- $(srcdir)/cp/exception.cc $(srcdir)/cp/tinfo.cc \
- $(srcdir)/cp/tinfo2.cc $(srcdir)/cp/tinfo.h
+
+CXX_LIB2SRCS = cp/tinfo.cc cp/tinfo2.cc cp/new.cc cp/opnew.cc cp/opnewnt.cc \
+ cp/opvnew.cc cp/opvnewnt.cc cp/opdel.cc cp/opdelnt.cc \
+ cp/opvdel.cc cp/opvdelnt.cc cp/exception.cc cp/vec.cc
+
#
# Define the names for selecting c++ in LANGUAGES.
# Note that it would be nice to move the dependency on g++
@@ -76,19 +72,12 @@ C++ c++: cc1plus$(exeext)
# Tell GNU make to ignore these if they exist.
.PHONY: C++ c++
-g++spec.o: $(srcdir)/cp/g++spec.c system.h $(GCC_H)
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/cp/g++spec.c
+cp/g++spec.o: cp/g++spec.c system.h $(GCC_H)
-$(INTL_TARGETS): $(srcdir)/cp/parse.c
-$(srcdir)/cp/parse.c: $(srcdir)/cp/parse.y
- @cp_srcdir=`sed -n 's/^srcdir[ ]*=[ ]*//p' cp/Makefile` && \
- echo "cd cp && $(MAKE) $$cp_srcdir/parse.c" && \
- cd cp && \
- $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) \
- $$cp_srcdir/parse.c
+$(INTL_TARGETS): cp/parse.c
# Create the compiler driver for g++.
-GXX_OBJS = gcc.o g++spec.o intl.o prefix.o version.o
+GXX_OBJS = gcc.o cp/g++spec.o intl.o prefix.o version.o
g++$(exeext): $(GXX_OBJS) $(EXTRA_GCC_OBJS) $(LIBDEPS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
$(GXX_OBJS) $(EXTRA_GCC_OBJS) $(LIBS)
@@ -98,7 +87,7 @@ g++-cross$(exeext): g++$(exeext)
-rm -f g++-cross$(exeext)
cp g++$(exeext) g++-cross$(exeext)
-cxxmain.o: $(srcdir)/../libiberty/cplus-dem.c $(DEMANGLE_H)
+cxxmain.o: ../libiberty/cplus-dem.c $(DEMANGLE_H)
rm -f cxxmain.c
$(LN_S) $(srcdir)/../libiberty/cplus-dem.c cxxmain.c
$(CC) -c -DMAIN $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
@@ -109,24 +98,19 @@ $(DEMANGLER_PROG): cxxmain.o underscore.
$(CC) -o $@ $(ALL_CFLAGS) $(LDFLAGS) \
cxxmain.o underscore.o $(LIBS)
-CXX_SRCS = $(srcdir)/cp/call.c $(srcdir)/cp/class.c $(srcdir)/cp/cp-tree.def \
- $(srcdir)/c-common.def \
- $(srcdir)/cp/cp-tree.h $(srcdir)/cp/cvt.c $(srcdir)/cp/decl.c \
- $(srcdir)/cp/decl.h $(srcdir)/cp/decl2.c $(srcdir)/cp/dump.c \
- $(srcdir)/cp/errfn.c $(srcdir)/cp/error.c $(srcdir)/cp/except.c \
- $(srcdir)/cp/expr.c $(srcdir)/cp/friend.c $(srcdir)/cp/init.c \
- $(srcdir)/cp/input.c $(srcdir)/cp/lex.c $(srcdir)/cp/lex.h \
- $(srcdir)/cp/mangle.c $(srcdir)/cp/method.c $(srcdir)/cp/optimize.c \
- $(srcdir)/cp/parse.y $(srcdir)/cp/pt.c $(srcdir)/cp/ptree.c \
- $(srcdir)/cp/repo.c $(srcdir)/cp/rtti.c $(srcdir)/cp/search.c \
- $(srcdir)/cp/semantics.c $(srcdir)/cp/spew.c $(srcdir)/cp/tree.c \
- $(srcdir)/cp/typeck.c $(srcdir)/cp/typeck2.c $(srcdir)/cp/xref.c
-
-cc1plus$(exeext): $(P) $(CXX_SRCS) $(LIBDEPS) stamp-objlist c-common.o \
- c-pragma.o $(srcdir)/cp/cp-tree.h $(srcdir)/cp/cp-tree.def \
- $(srcdir)/c-common.def $(srcdir)/cp/gxx.gperf $(srcdir)/cp/cfns.gperf hash.o \
- $(srcdir)/cp/operators.def
- cd cp; $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) ../cc1plus$(exeext)
+CXX_SRCS = cp/call.c cp/class.c cp/cp-tree.def \
+ c-common.def \
+ cp/cp-tree.h cp/cvt.c cp/decl.c \
+ cp/decl.h cp/decl2.c cp/dump.c \
+ cp/errfn.c cp/error.c cp/except.c \
+ cp/expr.c cp/friend.c cp/init.c \
+ cp/input.c cp/lex.c cp/lex.h \
+ cp/mangle.c cp/method.c cp/optimize.c \
+ cp/parse.y cp/pt.c cp/ptree.c \
+ cp/repo.c cp/rtti.c cp/search.c \
+ cp/semantics.c cp/spew.c cp/tree.c \
+ cp/typeck.c cp/typeck2.c cp/xref.c
+
#
# Build hooks:
@@ -134,56 +118,111 @@ c++.all.build: g++$(exeext)
c++.all.cross: g++-cross$(exeext) $(DEMANGLER_PROG)
c++.start.encap: g++$(exeext)
c++.rest.encap: $(DEMANGLER_PROG)
-
c++.info:
c++.dvi:
-# C++ language-support library pieces for libgcc.
-tinfo.o: cc1plus$(exeext) $(srcdir)/cp/tinfo.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/tinfo.cc
-tinfo2.o: cc1plus$(exeext) $(srcdir)/cp/tinfo2.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/tinfo2.cc
-exception.o: cc1plus$(exeext) $(srcdir)/cp/exception.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c -fexceptions $(srcdir)/cp/exception.cc
-new.o: cc1plus$(exeext) $(srcdir)/cp/new.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/new.cc
-opnew.o: cc1plus$(exeext) $(srcdir)/cp/new1.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/new1.cc -DL_op_new -o opnew.o
-opnewnt.o: cc1plus$(exeext) $(srcdir)/cp/new1.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/new1.cc -DL_op_newnt -o opnewnt.o
-opvnew.o: cc1plus$(exeext) $(srcdir)/cp/new2.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/new2.cc -DL_op_vnew -o opvnew.o
-opvnewnt.o: cc1plus$(exeext) $(srcdir)/cp/new2.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/new2.cc -DL_op_vnewnt -o opvnewnt.o
-opdel.o: cc1plus$(exeext) $(srcdir)/cp/new2.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/new2.cc -DL_op_delete -o opdel.o
-opdelnt.o: cc1plus$(exeext) $(srcdir)/cp/new2.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/new2.cc -DL_op_delnt -o opdelnt.o
-opvdel.o: cc1plus$(exeext) $(srcdir)/cp/new2.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/new2.cc -DL_op_vdel -o opvdel.o
-opvdelnt.o: cc1plus$(exeext) $(srcdir)/cp/new2.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/new2.cc -DL_op_vdelnt -o opvdelnt.o
-vec.o: cc1plus$(exeext) $(srcdir)/cp/vec.cc
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(GXX_ABI_FLAG) $(CXXFLAGS) $(INCLUDES) \
- -c $(srcdir)/cp/vec.cc -o vec.o
+# The compiler itself.
+
+# Shared with C front end:
+CXX_C_OBJS = c-common.o c-pragma.o
+# Language-specific object files for g++
+CXX_OBJS = \
+ cp/call.o cp/decl.o cp/errfn.o cp/expr.o cp/pt.o cp/typeck2.o \
+ cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parse.o cp/ptree.o \
+ cp/rtti.o cp/spew.o cp/typeck.o cp/cvt.o cp/except.o cp/friend.o \
+ cp/init.o cp/method.o cp/search.o cp/semantics.o cp/tree.o cp/xref.o \
+ cp/repo.o cp/dump.o cp/optimize.o cp/mangle.o
+
+cc1plus$(exeext): $(CXX_OBJS) $(CXX_C_OBJS) $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
+ $(CXX_OBJS) $(CXX_C_OBJS) $(BACKEND) $(LIBS)
+
+#
+# Compiling object files from source files.
+
+# Note that by convention dependencies on libiberty headers
+# (obstack.h, etc.) are not written.
+
+# C++ language specific files.
+
+CXX_TREE_H = $(TREE_H) cp/cp-tree.h c-common.h cp/cp-tree.def \
+ c-common.def function.h varray.h system.h $(CONFIG_H)
+
+CXX_TREE_H_PLUS = $(CXX_TREE_H) toplev.h flags.h
+
+cp/parse.o : cp/parse.c $(CXX_TREE_H) flags.h cp/lex.h except.h \
+ output.h system.h toplev.h $(GGC_H)
+
+CXX_CONFLICTS = expect 31 shift/reduce conflicts and 42 reduce/reduce conflicts.
+cp/parse.h : cp/parse.c
+cp/parse.c : cp/parse.y
+ @echo $(CXX_CONFLICTS)
+ cd $(srcdir)/cp && \
+ $(BISON) $(BISONFLAGS) -d -o parse.c parse.y && \
+ grep '^#define[ ]*YYEMPTY' parse.c >>parse.h
+
+# We used to try to protect people from having to rerun gperf. But,
+# the C front-end already requires this if c-parse.gperf is changed,
+# so we should be consistent.
+cp/hash.h: cp/gxx.gperf
+ gperf -L C -F ', 0, 0' -p -j1 -g -o -t -N is_reserved_word \
+ '-k1,4,7,$$' cp/gxx.gperf > cp/hash.h || ( \
+ echo "Please update your 'gperf' from the GCC infrastructure:" ; \
+ echo " ftp://gcc.gnu.org/pub/gcc/infrastructure/gperf*" ; \
+ exit 1 ) >&2
+
+cp/cfns.h: cp/cfns.gperf
+ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' \
+ cp/cfns.gperf > cp/cfns.h
+
+cp/dump.o: cp/dump.c $(CXX_TREE_H)
+cp/ptree.o: cp/ptree.c $(CXX_TREE_H)
+cp/errfn.o: cp/errfn.c $(CXX_TREE_H) toplev.h
+cp/error.o: cp/error.c $(CXX_TREE_H) toplev.h
+cp/mangle.o: cp/mangle.c $(CXX_TREE_H) toplev.h
+cp/repo.o: cp/repo.c $(CXX_TREE_H) toplev.h $(GGC_H)
+cp/xref.o: cp/xref.c $(CXX_TREE_H) toplev.h input.h
+cp/rtti.o: cp/rtti.c $(CXX_TREE_H_PLUS)
+cp/cvt.o: cp/cvt.c $(CXX_TREE_H_PLUS) cp/decl.h convert.h
+cp/spew.o: cp/spew.c $(CXX_TREE_H_PLUS) cp/lex.h cp/parse.h
+cp/class.o: cp/class.c $(CXX_TREE_H_PLUS) $(RTL_H)
+cp/friend.o: cp/friend.c $(CXX_TREE_H_PLUS) $(RTL_H)
+cp/typeck.o: cp/typeck.c $(CXX_TREE_H_PLUS) $(RTL_H) $(EXPR_H)
+cp/call.o: cp/call.c $(CXX_TREE_H_PLUS) $(RTL_H) $(EXPR_H) $(GGC_H)
+cp/init.o: cp/init.c $(CXX_TREE_H_PLUS) $(RTL_H) $(EXPR_H) $(GGC_H) except.h
+cp/expr.o: cp/expr.c $(CXX_TREE_H_PLUS) $(RTL_H) $(EXPR_H) except.h
+cp/method.o: cp/method.c $(CXX_TREE_H_PLUS) $(RTL_H) $(EXPR_H) $(GGC_H) output.h
+cp/search.o: cp/search.c $(CXX_TREE_H_PLUS) $(RTL_H) stack.h
+
+cp/except.o: cp/except.c $(CXX_TREE_H_PLUS) $(RTL_H) $(EXPR_H) except.h \
+ output.h cp/cfns.h insn-flags.h defaults.h cp/decl.h \
+ eh-common.h
+cp/typeck2.o: cp/typeck2.c $(CXX_TREE_H_PLUS) output.h
+cp/optimize.o: cp/optimize.c $(CXX_TREE_H) $(RTL_H) \
+ insn-config.h integrate.h input.h
+cp/pt.o: cp/pt.c $(CXX_TREE_H) toplev.h $(RTL_H) $(GGC_H) except.h \
+ cp/lex.h cp/decl.h cp/parse.h
+cp/tree.o: cp/tree.c $(CXX_TREE_H_PLUS) $(RTL_H) $(GGC_H) \
+ insn-config.h integrate.h
+cp/decl.o: cp/decl.c $(CXX_TREE_H_PLUS) $(RTL_H) $(EXPR_H) $(GGC_H) \
+ except.h output.h cp/lex.h cp/decl.h \
+ cp/operators.def stack.h hash.h
+cp/decl2.o: cp/decl2.c $(CXX_TREE_H_PLUS) $(RTL_H) $(EXPR_H) except.h \
+ output.h cp/lex.h cp/decl.h dwarf2out.h dwarfout.h
+cp/lex.o: cp/lex.c $(CXX_TREE_H_PLUS) $(GGC_H) output.h cp/lex.h cp/parse.h \
+ input.h mbchar.h cp/input.c cp/hash.h c-pragma.h \
+ diagnostic.h cp/operators.def
+cp/semantics.o: cp/semantics.c $(CXX_TREE_H_PLUS) $(RTL_H) \
+ $(GGC_H) except.h output.h cp/lex.h \
+ $(TIMEVAR_H)
+
+# C++ language-support library pieces for libgcc.
# We want to update cplib2.txt if any of the source files change...
cplib2.txt: $(CXX_LIB2SRCS) $(CXX_EXTRA_HEADERS)
case " $(LANGUAGES) " in \
*" "[cC]"++ "*) \
- echo $(CXX_LIB2FUNCS) > cplib2.new;; \
+ echo $(CXX_LIB2SRCS) > cplib2.new;; \
*) \
echo "" > cplib2.new;; \
esac
@@ -238,7 +277,7 @@ c++.install-common:
c++.install-info:
-c++.install-man: $(srcdir)/cp/g++.1
+c++.install-man: cp/g++.1
-if [ -f cc1plus$(exeext) ] ; then \
if [ -f g++-cross$(exeext) ] ; then \
rm -f $(man1dir)/$(GXX_CROSS_NAME)$(manext); \
@@ -292,16 +331,15 @@ c++.stage4: stage4-start
# This target creates the files that can be rebuilt, but go in the
# distribution anyway. It then copies the files to the distdir directory.
-c++.distdir:
+c++.distdir: cp/parse.c cp/hash.h cp/cfns.h
mkdir tmp/cp
mkdir tmp/cp/inc
- cd cp ; $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) parse.c hash.h
cd cp; \
for file in *[0-9a-zA-Z+]; do \
$(LN) $$file ../tmp/cp; \
done
cd cp/inc; \
for file in *[0-9a-zA-Z+]; do \
- ln $$file ../../tmp/cp/inc >/dev/null 2>&1 \
+ $(LN) $$file ../../tmp/cp/inc >/dev/null 2>&1 \
|| cp $$file ../../tmp/cp/inc; \
done
===================================================================
Index: cp/Makefile.in
--- cp/Makefile.in 2000/06/15 21:24:38 1.90
+++ cp/Makefile.in 2000/06/20 06:08:30
@@ -1,330 +1,43 @@
-# Makefile for GNU C++ compiler.
-# Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1998,
-# 1999, 2000 Free Software Foundation, Inc.
+# Generic Makefile.in for language subdirectory.
+# Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000
+# Free Software Foundation, Inc.
-#This file is part of GNU CC.
-
-#GNU CC 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.
-
-#GNU CC 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 GNU CC; see the file COPYING. If not, write to
-#the Free Software Foundation, 59 Temple Place - Suite 330,
-#Boston, MA 02111-1307, USA.
-
-# The makefile built from this file lives in the language subdirectory.
-# Its purpose is to provide support for:
+# This file is part of GNU CC.
#
-# 1) recursion where necessary, and only then (building .o's), and
-# 2) building and debugging cc1 from the language subdirectory, and
-# 3) nothing else.
+# GNU CC 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.
#
-# The parent makefile handles all other chores, with help from the
-# language makefile fragment, of course.
+# GNU CC 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.
#
-# The targets for external use are:
-# all, TAGS, ???mostlyclean, ???clean.
-
-# Suppress smart makes who think they know how to automake Yacc files
-.y.c:
-
-# It defines the c++ interface name. It should be changed when the
-# c++ interface is changed.
-INTERFACE = 2
-
-# Variables that exist for you to override.
-# See below for how to change them for certain systems.
-
-# Various ways of specifying flags for compilations:
-# CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
-# BOOT_CFLAGS is the value of CFLAGS to pass
-# to the stage2 and stage3 compilations
-# XCFLAGS is used for most compilations but not when using the GCC just built.
-XCFLAGS =
-CFLAGS = -g
-BOOT_CFLAGS = -O $(CFLAGS)
-# These exists to be overridden by the x-* and t-* files, respectively.
-X_CFLAGS =
-T_CFLAGS =
-
-X_CPPFLAGS =
-T_CPPFLAGS =
-
-CC = @CC@
-BISON = `if [ -f ../../bison/bison ] ; then echo ../../bison/bison -L $(srcdir)/../../bison/ ; else echo bison ; fi`
-BISONFLAGS =
-LEX = `if [ -f ../../flex/flex ] ; then echo ../../flex/flex ; else echo flex ; fi`
-LEXFLAGS =
-AR = ar
-AR_FLAGS = rc
-SHELL = /bin/sh
-MAKEINFO = makeinfo
-TEXI2DVI = texi2dvi
-
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
-# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
-# It omits XCFLAGS, and specifies -B./.
-# It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.
-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS)
+# You should have received a copy of the GNU General Public License along with
+# GNU CC; see the file COPYING. If not, write to the Free Software
+# Foundation, 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# The Makefile built from this file lives in a language subdirectory.
+# Its purpose is to indirect to the parent Makefile in case the user
+# chooses to make things in the language subdirectory.
-# Tools to use when building a cross-compiler.
-# These are used because `configure' appends `cross-make'
-# to the makefile when making a cross-compiler.
+# Change this line as appropriate.
+frontend = cc1plus
-# We don't use cross-make. Instead we use the tools
-# from the build tree, if they are available.
-# program_transform_name and objdir are set by configure.in.
-program_transform_name =
-objdir = .
-
-target=@target@
-xmake_file=@dep_host_xmake_file@
-tmake_file=@dep_tmake_file@
-#version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c`
-#mainversion=`sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/' < $(srcdir)/version.c`
-
-# Directory where sources are, from where we are.
+# You shouldn't need to modify anything below.
srcdir = @srcdir@
-VPATH = @srcdir@
-
-# Additional system libraries to link with.
-CLIB=
-
-# Top build directory, relative to here.
-top_builddir = ..
-
-# Internationalization library.
-INTLLIBS = @INTLLIBS@
-
-# Choose the real default target.
-ALL=all
-
-# 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.
-all: all.indirect
-
-# This tells GNU Make version 3 not to put all variables in the environment.
-.NOEXPORT:
-
-# sed inserts variable overrides after the following line.
-####target overrides
-@target_overrides@
-####host overrides
-@host_overrides@
-####cross overrides
-@cross_defines@
-@cross_overrides@
-####build overrides
-@build_overrides@
-#
-# Now figure out from those variables how to compile and link.
-
-all.indirect: Makefile ../cc1plus$(exeext)
-
-# IN_GCC tells obstack.h that we are using gcc's <stddef.h> file.
-INTERNAL_CFLAGS = $(CROSS) -DIN_GCC @extra_c_flags@
+VPATH = $(srcdir)
+exeext = @host_exeext@
-# This is the variable actually used when we compile.
-ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS) -W -Wall
+all: frontend
+frontend compiler: ../$(frontend)$(exeext)
-# Likewise.
-ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
+../$(frontend)$(exeext):
+ cd .. && $(MAKE) $(frontend)$(exeext)
-# This is where we get libiberty.a from.
-LIBIBERTY = ../../libiberty/libiberty.a
+.DEFAULT:
+ cd .. && $(MAKE) $@
-# How to link with both our special library facilities
-# and the system's installed libraries.
-LIBS = $(INTLLIBS) $(LIBIBERTY) $(CLIB)
-LIBDEPS = $(INTLLIBS) $(LIBIBERTY)
-
-# Specify the directories to be searched for header files.
-# Both . and srcdir are used, in that order,
-# so that tm.h and config.h will be found in the compilation
-# subdirectory rather than in the source directory.
-INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)/../../include
-
-# Always use -I$(srcdir)/config when compiling.
-.c.o:
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-
-# The only suffixes we want for implicit rules are .c and .o.
+.PHONY: all frontend compiler
.SUFFIXES:
-.SUFFIXES: .c .o
-
-# This tells GNU make version 3 not to export all the variables
-# defined in this file into the environment.
-.NOEXPORT:
-#
-# Lists of files for various purposes.
-
-# Language-specific object files for g++
-
-CXX_OBJS = call.o decl.o errfn.o expr.o pt.o typeck2.o \
- class.o decl2.o error.o lex.o parse.o ptree.o rtti.o spew.o typeck.o cvt.o \
- except.o friend.o init.o method.o search.o semantics.o tree.o xref.o \
- repo.o dump.o optimize.o mangle.o @extra_cxx_objs@
-
-# Language-independent object files.
-OBJS = `cat ../stamp-objlist` ../c-common.o ../c-pragma.o
-OBJDEPS = ../stamp-objlist ../c-common.o ../c-pragma.o
-
-compiler: ../cc1plus$(exeext)
-../cc1plus$(exeext): $(P) $(OBJDEPS) $(CXX_OBJS) $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(CXX_OBJS) $(LIBS)
-
-Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
- cd ..; $(SHELL) config.status
-
-native: config.status ../cc1plus$(exeext)
-#
-# 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.
-
-RTL_H = $(srcdir)/../rtl.h $(srcdir)/../rtl.def \
- $(srcdir)/../machmode.h $(srcdir)/../machmode.def
-TREE_H = $(srcdir)/../tree.h $(srcdir)/../real.h $(srcdir)/../tree.def \
- $(srcdir)/../machmode.h $(srcdir)/../machmode.def
-CXX_TREE_H = $(TREE_H) cp-tree.h $(srcdir)/../c-common.h cp-tree.def \
- $(srcdir)/../c-common.def $(srcdir)/../function.h $(srcdir)/../varray.h \
- $(srcdir)/../../include/splay-tree.h \
- $(srcdir)/../system.h $(CONFIG_H)
-PARSE_H = $(srcdir)/parse.h
-PARSE_C = $(srcdir)/parse.c
-EXPR_H = $(srcdir)/../expr.h ../insn-codes.h
-GGC_H = $(srcdir)/../ggc.h $(srcdir)/../varray.h
-HTAB_H = $(srcdir)/../../include/hashtab.h
-TIMEVAR_H = $(srcdir)/../timevar.h $(srcdir)/../timevar.def
-
-parse.o : $(PARSE_C) $(CXX_TREE_H) $(srcdir)/../flags.h lex.h \
- $(srcdir)/../except.h $(srcdir)/../output.h $(srcdir)/../system.h \
- $(srcdir)/../toplev.h $(GGC_H)
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(BIG_SWITCHFLAG) \
- `echo $(PARSE_C) | sed 's,^\./,,'`
-
-CONFLICTS = expect 31 shift/reduce conflicts and 42 reduce/reduce conflicts.
-$(PARSE_H) : $(PARSE_C)
-$(PARSE_C) : $(srcdir)/parse.y
- @echo $(CONFLICTS)
- cd $(srcdir); $(BISON) $(BISONFLAGS) -d -o parse.c parse.y
- cd $(srcdir); grep '^#define[ ]*YYEMPTY' parse.c >>parse.h
-#$(PARSE_C) $(PARSE_H) : stamp-parse ; @true
-#stamp-parse: $(srcdir)/parse.y
-# @echo $(CONFLICTS)
-# $(BISON) $(BISONFLAGS) -d $(srcdir)/parse.y
-# grep '^#define[ ]*YYEMPTY' y.tab.c >>y.tab.h
-# $(SHELL) $(srcdir)/../move-if-change y.tab.c $(PARSE_C)
-# $(SHELL) $(srcdir)/../move-if-change y.tab.h $(PARSE_H)
-# cp $(PARSE_C) y.tab.c
-# touch stamp-parse
-
-# We used to try to protect people from having to rerun gperf. But,
-# the C front-end already requires this if c-parse.gperf is changed,
-# so we should be consistent.
-$(srcdir)/hash.h: $(srcdir)/gxx.gperf
- gperf -L C -F ', 0, 0' -p -j1 -g -o -t -N is_reserved_word \
- '-k1,4,7,$$' $(srcdir)/gxx.gperf >$(srcdir)/hash.h || ( \
- echo "Please update your 'gperf' from the GCC infrastructure" >&2 ; \
- echo " ftp://sourceware.cygnus.com/pub/egcs/infrastructure/gperf*" >&2 ; \
- exit 1 )
-
-$(srcdir)/cfns.h: $(srcdir)/cfns.gperf
- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' \
- $(srcdir)/cfns.gperf > $(srcdir)/cfns.h
-
-spew.o : spew.c $(CXX_TREE_H) $(PARSE_H) $(srcdir)/../flags.h \
- lex.h $(srcdir)/../toplev.h
-lex.o : lex.c $(CXX_TREE_H) \
- $(PARSE_H) input.c $(srcdir)/../flags.h hash.h lex.h \
- $(srcdir)/../c-pragma.h $(srcdir)/../toplev.h \
- $(srcdir)/../output.h $(srcdir)/../mbchar.h $(GGC_H) \
- $(srcdir)/../input.h $(srcdir)/../diagnostic.h operators.def
-decl.o : decl.c $(CXX_TREE_H) $(srcdir)/../flags.h \
- lex.h decl.h $(srcdir)/../stack.h $(srcdir)/../output.h $(srcdir)/../expr.h \
- $(srcdir)/../except.h $(srcdir)/../toplev.h \
- $(srcdir)/../hash.h $(GGC_H) $(RTL_H) operators.def
-decl2.o : decl2.c $(CXX_TREE_H) $(srcdir)/../flags.h \
- lex.h decl.h $(EXPR_H) $(srcdir)/../output.h $(srcdir)/../except.h \
- $(srcdir)/../toplev.h $(srcdir)/../dwarf2out.h $(srcdir)/../dwarfout.h \
- $(GGC_H) $(RTL_H)
-typeck2.o : typeck2.c $(CXX_TREE_H) $(srcdir)/../flags.h \
- $(srcdir)/../toplev.h $(srcdir)/../output.h
-typeck.o : typeck.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
- $(EXPR_H) $(srcdir)/../toplev.h
-class.o : class.c $(CXX_TREE_H) $(srcdir)/../flags.h \
- $(srcdir)/../toplev.h $(RTL_H)
-call.o : call.c $(CXX_TREE_H) $(srcdir)/../flags.h \
- $(srcdir)/../toplev.h $(RTL_H) $(EXPR_H) $(GGC_H)
-friend.o : friend.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
- $(srcdir)/../toplev.h
-init.o : init.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
- $(EXPR_H) $(srcdir)/../toplev.h $(GGC_H) \
- $(srcdir)/../except.h
-method.o : method.c $(CXX_TREE_H) \
- $(srcdir)/../toplev.h $(GGC_H) $(RTL_H)
-cvt.o : cvt.c $(CXX_TREE_H) decl.h \
- $(srcdir)/../flags.h $(srcdir)/../toplev.h $(srcdir)/../convert.h
-search.o : search.c $(CXX_TREE_H) $(srcdir)/../stack.h \
- $(srcdir)/../flags.h $(srcdir)/../toplev.h $(RTL_H)
-tree.o : tree.c $(CXX_TREE_H) $(srcdir)/../flags.h \
- $(srcdir)/../toplev.h $(GGC_H) $(RTL_H) \
- ../insn-config.h $(srcdir)/../integrate.h
-ptree.o : ptree.c $(CXX_TREE_H) $(srcdir)/../system.h
-rtti.o : rtti.c $(CXX_TREE_H) $(srcdir)/../flags.h \
- $(srcdir)/../toplev.h
-except.o : except.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
- $(srcdir)/../except.h $(srcdir)/../toplev.h cfns.h
-expr.o : expr.c $(CXX_TREE_H) $(RTL_H) $(srcdir)/../flags.h \
- $(EXPR_H) $(srcdir)/../toplev.h $(srcdir)/../except.h
-xref.o : xref.c $(CXX_TREE_H) $(srcdir)/../input.h \
- $(srcdir)/../toplev.h
-pt.o : pt.c $(CXX_TREE_H) decl.h $(PARSE_H) lex.h \
- $(srcdir)/../toplev.h $(GGC_H) $(RTL_H) \
- $(srcdir)/../except.h $(HTAB_H)
-error.o : error.c $(CXX_TREE_H) \
- $(srcdir)/../toplev.h
-errfn.o : errfn.c $(CXX_TREE_H) \
- $(srcdir)/../toplev.h
-repo.o : repo.c $(CXX_TREE_H) \
- $(srcdir)/../toplev.h $(GGC_H)
-semantics.o: semantics.c $(CXX_TREE_H) lex.h \
- $(srcdir)/../except.h $(srcdir)/../toplev.h \
- $(srcdir)/../flags.h $(GGC_H) \
- $(srcdir)/../output.h $(RTL_H) $(TIMEVAR_H)
-dump.o: dump.c $(CXX_TREE_H)
-optimize.o: optimize.c $(CXX_TREE_H) \
- $(srcdir)/../rtl.h $(srcdir)/../integrate.h ../insn-config.h \
- $(srcdir)/../input.h
-mangle.o: mangle.c $(CXX_TREE_H) $(srcdir)/../toplev.h
-
-#
-# These exist for maintenance purposes.
-
-# Update the tags table.
-TAGS: force
- cd $(srcdir) ; \
- etags *.c *.h ; \
- echo 'l' | tr 'l' '\f' >> TAGS ; \
- echo 'parse.y,0' >> TAGS ; \
- etags -a ../*.h ../*.c;
-
-.PHONY: TAGS
-
-force:
===================================================================
Index: cp/decl2.c
--- cp/decl2.c 2000/06/14 05:30:04 1.368
+++ cp/decl2.c 2000/06/20 06:08:32
@@ -264,10 +264,6 @@ int warn_cast_qual;
int warn_pointer_arith = 1;
-/* Nonzero means warn for any function def without prototype decl. */
-
-int warn_missing_prototypes;
-
/* Nonzero means warn about multiple (redundant) decls for the same single
variable or function. */
@@ -743,7 +739,15 @@ lang_decode_option (argc, argv)
else if (!strcmp (p, "pointer-arith"))
warn_pointer_arith = setting;
else if (!strcmp (p, "missing-prototypes"))
- warn_missing_prototypes = setting;
+ {
+ if (setting == 0)
+ warning ("-Wno-missing-prototypes is not supported in C++");
+ }
+ else if (!strcmp (p, "strict-prototypes"))
+ {
+ if (setting == 0)
+ warning ("-Wno-strict-prototypes is not supported in C++");
+ }
else if (!strcmp (p, "redundant-decls"))
warn_redundant_decls = setting;
else if (!strcmp (p, "missing-braces"))
===================================================================
Index: cp/method.c
--- cp/method.c 2000/06/16 07:34:43 1.168
+++ cp/method.c 2000/06/20 06:08:33
@@ -31,7 +31,6 @@ Boston, MA 02111-1307, USA. */
#include "rtl.h"
#include "expr.h"
#include "output.h"
-#include "hard-reg-set.h"
#include "flags.h"
#include "toplev.h"
#include "ggc.h"
===================================================================
Index: cp/new1.cc
--- cp/new1.cc Mon Jun 19 23:08:41 2000
+++ cp/new1.cc Tue May 5 13:32:27 1998
@@ -1,91 +0,0 @@
-// Support routines for the -*- C++ -*- dynamic memory management.
-// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
-
-// This file is part of GNU CC.
-
-// GNU CC 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.
-
-// GNU CC 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 GNU CC; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include "new"
-using std::new_handler;
-using std::bad_alloc;
-
-extern "C" void *malloc (size_t);
-extern new_handler __new_handler;
-
-#define WEAK(x) \
- x __attribute__ ((weak)); \
- x
-
-#ifdef L_op_newnt
-WEAK (void * operator new (size_t sz, const std::nothrow_t&) throw())
-{
- void *p;
-
- /* malloc (0) is unpredictable; avoid it. */
- if (sz == 0)
- sz = 1;
- p = (void *) malloc (sz);
- while (p == 0)
- {
- new_handler handler = __new_handler;
- if (! handler)
- return 0;
- try
- {
- handler ();
- }
- catch (bad_alloc &)
- {
- return 0;
- }
-
- p = (void *) malloc (sz);
- }
-
- return p;
-}
-#endif
-
-#ifdef L_op_new
-WEAK (void * operator new (size_t sz) throw (std::bad_alloc))
-{
- void *p;
-
- /* malloc (0) is unpredictable; avoid it. */
- if (sz == 0)
- sz = 1;
- p = (void *) malloc (sz);
- while (p == 0)
- {
- new_handler handler = __new_handler;
- if (! handler)
- throw bad_alloc ();
- handler ();
- p = (void *) malloc (sz);
- }
-
- return p;
-}
-#endif
===================================================================
Index: cp/new2.cc
--- cp/new2.cc Mon Jun 19 23:08:41 2000
+++ cp/new2.cc Tue May 5 13:32:27 1998
@@ -1,80 +0,0 @@
-// Boilerplate support routines for -*- C++ -*- dynamic memory management.
-// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
-
-// This file is part of GNU CC.
-
-// GNU CC 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.
-
-// GNU CC 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 GNU CC; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#include "new"
-
-extern "C" void free (void *);
-
-#define WEAK(x) \
- x __attribute__ ((weak)); \
- x
-
-#ifdef L_op_vnew
-WEAK(void * operator new[] (size_t sz) throw (std::bad_alloc))
-{
- return ::operator new(sz);
-}
-#endif
-
-#ifdef L_op_vnewnt
-WEAK(void *operator new[] (size_t sz, const std::nothrow_t& nothrow) throw())
-{
- return ::operator new(sz, nothrow);
-}
-#endif
-
-#ifdef L_op_delete
-WEAK (void operator delete (void *ptr) throw ())
-{
- if (ptr)
- free (ptr);
-}
-#endif
-
-#ifdef L_op_vdel
-WEAK (void operator delete[] (void *ptr) throw ())
-{
- ::operator delete (ptr);
-}
-#endif
-
-#ifdef L_op_delnt
-WEAK (void operator delete (void *ptr, const std::nothrow_t&) throw ())
-{
- if (ptr)
- free (ptr);
-}
-#endif
-
-#ifdef L_op_vdelnt
-WEAK (void operator delete[] (void *ptr, const std::nothrow_t&) throw ())
-{
- ::operator delete (ptr);
-}
-#endif
===================================================================
Index: cp/opdel.cc
--- cp/opdel.cc Tue May 5 13:32:27 1998
+++ cp/opdel.cc Mon Jun 19 23:08:33 2000
@@ -0,0 +1,42 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+
+// This file is part of GNU CC.
+
+// GNU CC 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.
+
+// GNU CC 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 GNU CC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+extern "C" void free (void *);
+
+#define WEAK(x) \
+ x __attribute__ ((weak)); \
+ x
+
+WEAK (void operator delete (void *ptr) throw ())
+{
+ if (ptr)
+ free (ptr);
+}
===================================================================
Index: cp/opdelnt.cc
--- cp/opdelnt.cc Tue May 5 13:32:27 1998
+++ cp/opdelnt.cc Mon Jun 19 23:08:33 2000
@@ -0,0 +1,42 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+
+// This file is part of GNU CC.
+
+// GNU CC 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.
+
+// GNU CC 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 GNU CC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+extern "C" void free (void *);
+
+#define WEAK(x) \
+ x __attribute__ ((weak)); \
+ x
+
+WEAK (void operator delete (void *ptr, const std::nothrow_t&) throw ())
+{
+ if (ptr)
+ free (ptr);
+}
===================================================================
Index: cp/opnew.cc
--- cp/opnew.cc Tue May 5 13:32:27 1998
+++ cp/opnew.cc Mon Jun 19 23:08:33 2000
@@ -0,0 +1,59 @@
+// Support routines for the -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+
+// This file is part of GNU CC.
+
+// GNU CC 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.
+
+// GNU CC 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 GNU CC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+using std::new_handler;
+using std::bad_alloc;
+
+extern "C" void *malloc (size_t);
+extern new_handler __new_handler;
+
+#define WEAK(x) \
+ x __attribute__ ((weak)); \
+ x
+
+WEAK (void * operator new (size_t sz) throw (std::bad_alloc))
+{
+ void *p;
+
+ /* malloc (0) is unpredictable; avoid it. */
+ if (sz == 0)
+ sz = 1;
+ p = (void *) malloc (sz);
+ while (p == 0)
+ {
+ new_handler handler = __new_handler;
+ if (! handler)
+ throw bad_alloc ();
+ handler ();
+ p = (void *) malloc (sz);
+ }
+
+ return p;
+}
===================================================================
Index: cp/opnewnt.cc
--- cp/opnewnt.cc Tue May 5 13:32:27 1998
+++ cp/opnewnt.cc Mon Jun 19 23:08:33 2000
@@ -0,0 +1,67 @@
+// Support routines for the -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+
+// This file is part of GNU CC.
+
+// GNU CC 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.
+
+// GNU CC 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 GNU CC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+using std::new_handler;
+using std::bad_alloc;
+
+extern "C" void *malloc (size_t);
+extern new_handler __new_handler;
+
+#define WEAK(x) \
+ x __attribute__ ((weak)); \
+ x
+
+WEAK (void * operator new (size_t sz, const std::nothrow_t&) throw())
+{
+ void *p;
+
+ /* malloc (0) is unpredictable; avoid it. */
+ if (sz == 0)
+ sz = 1;
+ p = (void *) malloc (sz);
+ while (p == 0)
+ {
+ new_handler handler = __new_handler;
+ if (! handler)
+ return 0;
+ try
+ {
+ handler ();
+ }
+ catch (bad_alloc &)
+ {
+ return 0;
+ }
+
+ p = (void *) malloc (sz);
+ }
+
+ return p;
+}
===================================================================
Index: cp/opvdel.cc
--- cp/opvdel.cc Tue May 5 13:32:27 1998
+++ cp/opvdel.cc Mon Jun 19 23:08:33 2000
@@ -0,0 +1,41 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+
+// This file is part of GNU CC.
+
+// GNU CC 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.
+
+// GNU CC 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 GNU CC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+extern "C" void free (void *);
+
+#define WEAK(x) \
+ x __attribute__ ((weak)); \
+ x
+
+WEAK (void operator delete[] (void *ptr) throw ())
+{
+ ::operator delete (ptr);
+}
===================================================================
Index: cp/opvdelnt.cc
--- cp/opvdelnt.cc Tue May 5 13:32:27 1998
+++ cp/opvdelnt.cc Mon Jun 19 23:08:33 2000
@@ -0,0 +1,41 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+
+// This file is part of GNU CC.
+
+// GNU CC 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.
+
+// GNU CC 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 GNU CC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+extern "C" void free (void *);
+
+#define WEAK(x) \
+ x __attribute__ ((weak)); \
+ x
+
+WEAK (void operator delete[] (void *ptr, const std::nothrow_t&) throw ())
+{
+ ::operator delete (ptr);
+}
===================================================================
Index: cp/opvnew.cc
--- cp/opvnew.cc Tue May 5 13:32:27 1998
+++ cp/opvnew.cc Mon Jun 19 23:08:33 2000
@@ -0,0 +1,41 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+
+// This file is part of GNU CC.
+
+// GNU CC 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.
+
+// GNU CC 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 GNU CC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+extern "C" void free (void *);
+
+#define WEAK(x) \
+ x __attribute__ ((weak)); \
+ x
+
+WEAK(void * operator new[] (size_t sz) throw (std::bad_alloc))
+{
+ return ::operator new(sz);
+}
===================================================================
Index: cp/opvnewnt.cc
--- cp/opvnewnt.cc Tue May 5 13:32:27 1998
+++ cp/opvnewnt.cc Mon Jun 19 23:08:33 2000
@@ -0,0 +1,41 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+
+// This file is part of GNU CC.
+
+// GNU CC 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.
+
+// GNU CC 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 GNU CC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+extern "C" void free (void *);
+
+#define WEAK(x) \
+ x __attribute__ ((weak)); \
+ x
+
+WEAK(void *operator new[] (size_t sz, const std::nothrow_t& nothrow) throw())
+{
+ return ::operator new(sz, nothrow);
+}
===================================================================
Index: f/Make-lang.in
--- f/Make-lang.in 2000/06/17 13:53:59 1.64
+++ f/Make-lang.in 2000/06/20 06:08:33
@@ -93,120 +93,295 @@ g77-cross$(exeext): g77$(exeext)
cp g77$(exeext) g77-cross$(exeext); \
else true; fi
-F77_SRCS = \
- $(srcdir)/f/assert.j \
- $(srcdir)/f/bad.c \
- $(srcdir)/f/bad.def \
- $(srcdir)/f/bad.h \
- $(srcdir)/f/bit.c \
- $(srcdir)/f/bit.h \
- $(srcdir)/f/bld-op.def \
- $(srcdir)/f/bld.c \
- $(srcdir)/f/bld.h \
- $(srcdir)/f/com-rt.def \
- $(srcdir)/f/com.c \
- $(srcdir)/f/com.h \
- $(srcdir)/f/config.j \
- $(srcdir)/f/convert.j \
- $(srcdir)/f/data.c \
- $(srcdir)/f/data.h \
- $(srcdir)/f/equiv.c \
- $(srcdir)/f/equiv.h \
- $(srcdir)/f/expr.c \
- $(srcdir)/f/expr.h \
- $(srcdir)/f/fini.c \
- $(srcdir)/f/flags.j \
- $(srcdir)/f/glimits.j \
- $(srcdir)/f/global.c \
- $(srcdir)/f/global.h \
- $(srcdir)/f/hconfig.j \
- $(srcdir)/f/implic.c \
- $(srcdir)/f/implic.h \
- $(srcdir)/f/input.j \
- $(srcdir)/f/info-b.def \
- $(srcdir)/f/info-k.def \
- $(srcdir)/f/info-w.def \
- $(srcdir)/f/info.c \
- $(srcdir)/f/info.h \
- $(srcdir)/f/intrin.c \
- $(srcdir)/f/intrin.def \
- $(srcdir)/f/intrin.h \
- $(srcdir)/f/lab.c \
- $(srcdir)/f/lab.h \
- $(srcdir)/f/lex.c \
- $(srcdir)/f/lex.h \
- $(srcdir)/f/malloc.c \
- $(srcdir)/f/malloc.h \
- $(srcdir)/f/name.c \
- $(srcdir)/f/name.h \
- $(srcdir)/f/output.j \
- $(srcdir)/f/parse.c \
- $(srcdir)/f/proj.c \
- $(srcdir)/f/proj.h \
- $(srcdir)/f/rtl.j \
- $(srcdir)/f/src.c \
- $(srcdir)/f/src.h \
- $(srcdir)/f/st.c \
- $(srcdir)/f/st.h \
- $(srcdir)/f/sta.c \
- $(srcdir)/f/sta.h \
- $(srcdir)/f/stb.c \
- $(srcdir)/f/stb.h \
- $(srcdir)/f/stc.c \
- $(srcdir)/f/stc.h \
- $(srcdir)/f/std.c \
- $(srcdir)/f/std.h \
- $(srcdir)/f/ste.c \
- $(srcdir)/f/ste.h \
- $(srcdir)/f/storag.c \
- $(srcdir)/f/storag.h \
- $(srcdir)/f/stp.c \
- $(srcdir)/f/stp.h \
- $(srcdir)/f/str-1t.fin \
- $(srcdir)/f/str-2t.fin \
- $(srcdir)/f/str-fo.fin \
- $(srcdir)/f/str-io.fin \
- $(srcdir)/f/str-nq.fin \
- $(srcdir)/f/str-op.fin \
- $(srcdir)/f/str-ot.fin \
- $(srcdir)/f/str.c \
- $(srcdir)/f/str.h \
- $(srcdir)/f/sts.c \
- $(srcdir)/f/sts.h \
- $(srcdir)/f/stt.c \
- $(srcdir)/f/stt.h \
- $(srcdir)/f/stu.c \
- $(srcdir)/f/stu.h \
- $(srcdir)/f/stv.c \
- $(srcdir)/f/stv.h \
- $(srcdir)/f/stw.c \
- $(srcdir)/f/stw.h \
- $(srcdir)/f/symbol.c \
- $(srcdir)/f/symbol.def \
- $(srcdir)/f/symbol.h \
- $(srcdir)/f/system.j \
- $(srcdir)/f/target.c \
- $(srcdir)/f/target.h \
- $(srcdir)/f/tconfig.j \
- $(srcdir)/f/tm.j \
- $(srcdir)/f/top.c \
- $(srcdir)/f/top.h \
- $(srcdir)/f/toplev.j \
- $(srcdir)/f/tree.j \
- $(srcdir)/f/type.c \
- $(srcdir)/f/type.h \
- $(srcdir)/f/version.c \
- $(srcdir)/f/version.h \
- $(srcdir)/f/where.c \
- $(srcdir)/f/where.h
-
-f771$(exeext): $(P) $(F77_SRCS) $(LIBDEPS) stamp-objlist
- touch lang-f77
- cd f; $(MAKE) $(LANG_FLAGS_TO_PASS) \
- HOST_CC="`case '$(HOST_CC)' in stage*) echo '$(HOST_CC)' | sed -e 's|stage|../stage|g';; *) echo '$(HOST_CC)';; esac`" \
- HOST_CFLAGS="$(HOST_CFLAGS)" HOST_CPPFLAGS="$(HOST_CPPFLAGS)" \
- ../f771$(exeext)
+F77_SRCS = $(srcdir)/f/assert.j $(srcdir)/f/bad.c $(srcdir)/f/bad.def \
+ $(srcdir)/f/bad.h $(srcdir)/f/bit.c $(srcdir)/f/bit.h \
+ $(srcdir)/f/bld-op.def $(srcdir)/f/bld.c $(srcdir)/f/bld.h \
+ $(srcdir)/f/com-rt.def $(srcdir)/f/com.c $(srcdir)/f/com.h \
+ $(srcdir)/f/config.j $(srcdir)/f/convert.j $(srcdir)/f/data.c \
+ $(srcdir)/f/data.h $(srcdir)/f/equiv.c $(srcdir)/f/equiv.h \
+ $(srcdir)/f/expr.c $(srcdir)/f/expr.h $(srcdir)/f/fini.c \
+ $(srcdir)/f/flags.j $(srcdir)/f/glimits.j $(srcdir)/f/global.c \
+ $(srcdir)/f/global.h $(srcdir)/f/hconfig.j $(srcdir)/f/implic.c \
+ $(srcdir)/f/implic.h $(srcdir)/f/input.j $(srcdir)/f/info-b.def \
+ $(srcdir)/f/info-k.def $(srcdir)/f/info-w.def $(srcdir)/f/info.c \
+ $(srcdir)/f/info.h $(srcdir)/f/intrin.c $(srcdir)/f/intrin.def \
+ $(srcdir)/f/intrin.h $(srcdir)/f/lab.c $(srcdir)/f/lab.h \
+ $(srcdir)/f/lex.c $(srcdir)/f/lex.h $(srcdir)/f/malloc.c \
+ $(srcdir)/f/malloc.h $(srcdir)/f/name.c $(srcdir)/f/name.h \
+ $(srcdir)/f/output.j $(srcdir)/f/parse.c $(srcdir)/f/proj.c \
+ $(srcdir)/f/proj.h $(srcdir)/f/rtl.j $(srcdir)/f/src.c \
+ $(srcdir)/f/src.h $(srcdir)/f/st.c $(srcdir)/f/st.h $(srcdir)/f/sta.c \
+ $(srcdir)/f/sta.h $(srcdir)/f/stb.c $(srcdir)/f/stb.h \
+ $(srcdir)/f/stc.c $(srcdir)/f/stc.h $(srcdir)/f/std.c \
+ $(srcdir)/f/std.h $(srcdir)/f/ste.c $(srcdir)/f/ste.h \
+ $(srcdir)/f/storag.c $(srcdir)/f/storag.h $(srcdir)/f/stp.c \
+ $(srcdir)/f/stp.h $(srcdir)/f/str-1t.fin $(srcdir)/f/str-2t.fin \
+ $(srcdir)/f/str-fo.fin $(srcdir)/f/str-io.fin $(srcdir)/f/str-nq.fin \
+ $(srcdir)/f/str-op.fin $(srcdir)/f/str-ot.fin $(srcdir)/f/str.c \
+ $(srcdir)/f/str.h $(srcdir)/f/sts.c $(srcdir)/f/sts.h \
+ $(srcdir)/f/stt.c $(srcdir)/f/stt.h $(srcdir)/f/stu.c \
+ $(srcdir)/f/stu.h $(srcdir)/f/stv.c $(srcdir)/f/stv.h \
+ $(srcdir)/f/stw.c $(srcdir)/f/stw.h $(srcdir)/f/symbol.c \
+ $(srcdir)/f/symbol.def $(srcdir)/f/symbol.h $(srcdir)/f/system.j \
+ $(srcdir)/f/target.c $(srcdir)/f/target.h $(srcdir)/f/tconfig.j \
+ $(srcdir)/f/tm.j $(srcdir)/f/top.c $(srcdir)/f/top.h \
+ $(srcdir)/f/toplev.j $(srcdir)/f/tree.j $(srcdir)/f/type.c \
+ $(srcdir)/f/type.h $(srcdir)/f/version.c $(srcdir)/f/version.h \
+ $(srcdir)/f/where.c $(srcdir)/f/where.h
+
+F77_OBJS = f/bad.o f/bit.o f/bld.o f/com.o f/data.o f/equiv.o f/expr.o \
+ f/global.o f/implic.o f/info.o f/intrin.o f/lab.o f/lex.o f/malloc.o \
+ f/name.o f/parse.o f/proj.o f/src.o f/st.o f/sta.o f/stb.o f/stc.o \
+ f/std.o f/ste.o f/storag.o f/stp.o f/str.o f/sts.o f/stt.o f/stu.o \
+ f/stv.o f/stw.o f/symbol.o f/target.o f/top.o f/type.o f/version.o \
+ f/where.o
+
+f771$(exeext): $(F77_OBJS) $(BACKEND) $(LIBDEPS)
+ rm -f f771$(exeext)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(F77_OBJS) $(BACKEND) $(LIBS)
+
+f/ansify.o: f/ansify.c hconfig.h system.h
+f/bad.o: f/bad.c f/proj.h $(CONFIG_H) system.h f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/malloc.h flags.h f/com.h \
+ f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h f/lex.h f/type.h \
+ f/intrin.h f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h \
+ f/storag.h f/global.h f/name.h toplev.h
+f/bit.o: f/bit.c f/proj.h $(CONFIG_H) system.h glimits.h \
+ f/bit.h f/malloc.h
+f/bld.o: f/bld.c f/proj.h $(CONFIG_H) system.h f/bld.h \
+ f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) \
+ f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h \
+ f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h \
+ f/intrin.h f/intrin.def
+f/com.o: f/com.c f/proj.h $(CONFIG_H) system.h flags.h \
+ $(RTL_H) toplev.h $(TREE_H) output.h convert.h f/com.h f/com-rt.def \
+ f/bld.h f/bld-op.def f/bit.h f/malloc.h f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h \
+ glimits.h f/top.h f/lex.h f/type.h f/intrin.h f/intrin.def f/lab.h \
+ f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h f/name.h \
+ f/expr.h f/implic.h f/src.h f/st.h $(GGC_H)
+f/data.o: f/data.c f/proj.h $(CONFIG_H) system.h f/data.h \
+ f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def \
+ $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h \
+ f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
+ f/name.h f/intrin.h f/intrin.def f/expr.h f/st.h
+f/equiv.o: f/equiv.c f/proj.h $(CONFIG_H) system.h \
+ f/equiv.h f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h \
+ f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h f/top.h \
+ f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def \
+ f/global.h f/name.h f/intrin.h f/intrin.def f/data.h
+f/expr.o: f/expr.c f/proj.h $(CONFIG_H) system.h f/expr.h \
+ f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def \
+ $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h \
+ f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
+ f/name.h f/intrin.h f/intrin.def f/implic.h f/src.h f/st.h stamp-str
+f/fini.o: f/fini.c f/proj.h hconfig.h system.h f/malloc.h
+f/global.o: f/global.c f/proj.h $(CONFIG_H) system.h \
+ f/global.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ $(TREE_H) f/bad.h f/bad.def f/where.h glimits.h f/top.h f/malloc.h \
+ f/lex.h f/type.h f/name.h f/symbol.h f/symbol.def f/bld.h \
+ f/bld-op.def f/bit.h f/com.h f/com-rt.def f/lab.h f/storag.h \
+ f/intrin.h f/intrin.def f/equiv.h
+f/implic.o: f/implic.c f/proj.h $(CONFIG_H) system.h \
+ f/implic.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ $(TREE_H) f/bad.h f/bad.def f/where.h glimits.h f/top.h f/malloc.h \
+ f/lex.h f/type.h f/symbol.h f/symbol.def f/bld.h f/bld-op.def f/bit.h \
+ f/com.h f/com-rt.def f/lab.h f/storag.h f/intrin.h f/intrin.def \
+ f/equiv.h f/global.h f/name.h f/src.h
+f/info.o: f/info.c f/proj.h $(CONFIG_H) system.h f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h $(TREE_H) f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/type.h
+f/intdoc.o: f/intdoc.c hconfig.h system.h f/intrin.h \
+ f/intrin.def f/intdoc.h0 f/intdoc.h0
+f/intrin.o: f/intrin.c f/proj.h $(CONFIG_H) system.h \
+ f/intrin.h f/intrin.def f/bld.h f/bld-op.def f/bit.h f/malloc.h \
+ f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h f/top.h \
+ f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h \
+ f/global.h f/name.h f/expr.h f/src.h
+f/lab.o: f/lab.c f/proj.h $(CONFIG_H) system.h f/lab.h \
+ f/com.h f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h \
+ f/malloc.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h \
+ f/intrin.h f/intrin.def f/symbol.h f/symbol.def f/equiv.h f/storag.h \
+ f/global.h f/name.h
+f/lex.o: f/lex.c f/proj.h $(CONFIG_H) system.h f/top.h \
+ f/malloc.h f/where.h glimits.h f/bad.h f/bad.def f/com.h f/com-rt.def \
+ $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h f/lex.h f/type.h f/intrin.h \
+ f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h f/storag.h \
+ f/global.h f/name.h f/src.h flags.h input.h toplev.h output.h \
+ $(GGC_H)
+f/malloc.o: f/malloc.c f/proj.h $(CONFIG_H) system.h f/malloc.h
+f/name.o: f/name.c f/proj.h $(CONFIG_H) system.h f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/malloc.h f/name.h f/global.h \
+ f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h $(TREE_H) \
+ f/lex.h f/type.h f/symbol.h f/symbol.def f/bld.h f/bld-op.def f/bit.h \
+ f/com.h f/com-rt.def f/lab.h f/storag.h f/intrin.h f/intrin.def \
+ f/equiv.h f/src.h
+f/parse.o: f/parse.c f/proj.h $(CONFIG_H) system.h f/top.h \
+ f/malloc.h f/where.h glimits.h f/com.h f/com-rt.def $(TREE_H) f/bld.h \
+ f/bld-op.def f/bit.h f/info.h f/info-b.def f/info-k.def f/info-w.def \
+ f/target.h f/bad.h f/bad.def f/lex.h f/type.h f/intrin.h f/intrin.def \
+ f/lab.h f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h \
+ f/name.h f/version.h flags.h
+f/proj.o: f/proj.c f/proj.h $(CONFIG_H) system.h glimits.h
+f/src.o: f/src.c f/proj.h $(CONFIG_H) system.h f/src.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/malloc.h
+f/st.o: f/st.c f/proj.h $(CONFIG_H) system.h f/st.h f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/symbol.h \
+ f/symbol.def f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def \
+ $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/type.h f/lab.h f/storag.h f/intrin.h f/intrin.def f/equiv.h \
+ f/global.h f/name.h f/sta.h stamp-str f/stb.h f/expr.h f/stp.h \
+ f/stt.h f/stc.h f/std.h f/stv.h f/stw.h f/ste.h f/sts.h f/stu.h
+f/sta.o: f/sta.c f/proj.h $(CONFIG_H) system.h f/sta.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/malloc.h f/lex.h \
+ stamp-str f/symbol.h f/symbol.def f/bld.h f/bld-op.def f/bit.h \
+ f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/type.h f/lab.h f/storag.h f/intrin.h \
+ f/intrin.def f/equiv.h f/global.h f/name.h f/implic.h f/stb.h \
+ f/expr.h f/stp.h f/stt.h f/stc.h f/std.h f/stv.h f/stw.h
+f/stb.o: f/stb.c f/proj.h $(CONFIG_H) system.h f/stb.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/malloc.h f/expr.h \
+ f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h f/lex.h f/type.h \
+ f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
+ f/name.h f/intrin.h f/intrin.def f/stp.h f/stt.h stamp-str f/src.h \
+ f/sta.h f/stc.h
+f/stc.o: f/stc.c f/proj.h $(CONFIG_H) system.h f/stc.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/malloc.h f/bld.h \
+ f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
+ f/info-b.def f/info-k.def f/info-w.def f/target.h f/lex.h f/type.h \
+ f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
+ f/name.h f/intrin.h f/intrin.def f/expr.h f/stp.h f/stt.h stamp-str \
+ f/data.h f/implic.h f/src.h f/sta.h f/std.h f/stv.h f/stw.h
+f/std.o: f/std.c f/proj.h $(CONFIG_H) system.h f/std.h \
+ f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def \
+ $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h \
+ f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
+ f/name.h f/intrin.h f/intrin.def f/stp.h f/stt.h stamp-str f/stv.h \
+ f/stw.h f/sta.h f/ste.h f/sts.h
+f/ste.o: f/ste.c f/proj.h $(CONFIG_H) system.h $(RTL_H) \
+ toplev.h f/ste.h f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h \
+ f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h f/top.h \
+ f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h \
+ f/global.h f/name.h f/intrin.h f/intrin.def f/stp.h f/stt.h stamp-str \
+ f/sts.h f/stv.h f/stw.h f/expr.h f/sta.h $(GGC_H)
+f/storag.o: f/storag.c f/proj.h $(CONFIG_H) system.h \
+ f/storag.h f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h \
+ f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h f/top.h \
+ f/lex.h f/type.h f/lab.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
+ f/name.h f/intrin.h f/intrin.def f/data.h
+f/stp.o: f/stp.c f/proj.h $(CONFIG_H) system.h f/stp.h \
+ f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def \
+ $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h \
+ f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
+ f/name.h f/intrin.h f/intrin.def f/stt.h
+f/str.o: f/str.c f/proj.h $(CONFIG_H) system.h f/src.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/malloc.h stamp-str \
+ f/lex.h
+f/sts.o: f/sts.c f/proj.h $(CONFIG_H) system.h f/sts.h \
+ f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def \
+ f/bit.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h \
+ f/intrin.h f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h \
+ f/storag.h f/global.h f/name.h
+f/stt.o: f/stt.c f/proj.h $(CONFIG_H) system.h f/stt.h \
+ f/top.h f/malloc.h f/where.h glimits.h f/bld.h f/bld-op.def f/bit.h \
+ f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/bad.h f/bad.def f/lex.h f/type.h f/lab.h \
+ f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h \
+ f/intrin.h f/intrin.def f/stp.h f/expr.h f/sta.h stamp-str
+f/stu.o: f/stu.c f/proj.h $(CONFIG_H) system.h f/bld.h \
+ f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) \
+ f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \
+ f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h \
+ f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h \
+ f/intrin.h f/intrin.def f/implic.h f/stu.h f/sta.h stamp-str
+f/stv.o: f/stv.c f/proj.h $(CONFIG_H) system.h f/stv.h \
+ f/lab.h f/com.h f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h \
+ f/malloc.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h \
+ f/intrin.h f/intrin.def f/symbol.h f/symbol.def f/equiv.h f/storag.h \
+ f/global.h f/name.h
+f/stw.o: f/stw.c f/proj.h $(CONFIG_H) system.h f/stw.h \
+ f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def \
+ $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \
+ f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h \
+ f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
+ f/name.h f/intrin.h f/intrin.def f/stv.h f/sta.h stamp-str
+f/symbol.o: f/symbol.c f/proj.h $(CONFIG_H) system.h \
+ f/symbol.h f/symbol.def f/bld.h f/bld-op.def f/bit.h f/malloc.h \
+ f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
+ f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h f/top.h \
+ f/lex.h f/type.h f/lab.h f/storag.h f/intrin.h f/intrin.def f/equiv.h \
+ f/global.h f/name.h f/src.h f/st.h
+f/target.o: f/target.c f/proj.h $(CONFIG_H) system.h \
+ glimits.h f/target.h $(TREE_H) f/bad.h f/bad.def f/where.h f/top.h \
+ f/malloc.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/type.h \
+ f/lex.h
+f/top.o: f/top.c f/proj.h $(CONFIG_H) system.h f/top.h \
+ f/malloc.h f/where.h glimits.h f/bad.h f/bad.def f/bit.h f/bld.h \
+ f/bld-op.def f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \
+ f/info-k.def f/info-w.def f/target.h f/lex.h f/type.h f/lab.h \
+ f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h \
+ f/intrin.h f/intrin.def f/data.h f/expr.h f/implic.h f/src.h f/st.h \
+ flags.h toplev.h
+f/type.o: f/type.c f/proj.h $(CONFIG_H) system.h f/type.h f/malloc.h
+f/version.o: f/version.c
+f/where.o: f/where.c f/proj.h $(CONFIG_H) system.h \
+ f/where.h glimits.h f/top.h f/malloc.h f/lex.h $(GGC_H)
+
+stamp-str: str-1t.h str-1t.j str-2t.h str-2t.j \
+ str-fo.h str-fo.j str-io.h str-io.j str-nq.h str-nq.j \
+ str-op.h str-op.j str-ot.h str-ot.j
+ touch stamp-str
+
+str-1t.h str-1t.j: f/fini f/str-1t.fin
+ ./f/fini $(srcdir)/f/str-1t.fin str-1t.j str-1t.h
+
+str-2t.h str-2t.j: f/fini f/str-2t.fin
+ ./f/fini $(srcdir)/f/str-2t.fin str-2t.j str-2t.h
+
+str-fo.h str-fo.j: f/fini f/str-fo.fin
+ ./f/fini $(srcdir)/f/str-fo.fin str-fo.j str-fo.h
+
+str-io.h str-io.j: f/fini f/str-io.fin
+ ./f/fini $(srcdir)/f/str-io.fin str-io.j str-io.h
+
+str-nq.h str-nq.j: f/fini f/str-nq.fin
+ ./f/fini $(srcdir)/f/str-nq.fin str-nq.j str-nq.h
+
+str-op.h str-op.j: f/fini f/str-op.fin
+ ./f/fini $(srcdir)/f/str-op.fin str-op.j str-op.h
+
+str-ot.h str-ot.j: f/fini f/str-ot.fin
+ ./f/fini $(srcdir)/f/str-ot.fin str-ot.j str-ot.h
+
+f/fini: f/fini.o f/proj-h.o
+ $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o f/fini f/fini.o f/proj-h.o
+
+f/fini.o: f/fini.c f/proj.h hconfig.h system.h
+ $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
+ $(srcdir)/f/fini.c -o $@
+
+# Like f/proj.o, but depends on hconfig.h instead of config.h.
+f/proj-h.o: f/proj.c f/proj.h hconfig.h system.h glimits.h
+ $(HOST_CC) -c -DUSE_HCONFIG \
+ $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
+ $(srcdir)/f/proj.c -o $@
+
#
# Build hooks:
@@ -410,7 +585,7 @@ f77.uninstall: installdirs
f77.mostlyclean:
-rm -f f/*$(objext)
- -rm -f f/fini f/stamp-str f/str-*.h f/str-*.j
+ -rm -f f/fini stamp-str str-*.h str-*.j
-rm -f f/intdoc f/ansify f/intdoc.h0
-rm -f g77.aux g77.cps g77.ky g77.toc g77.vr g77.fn g77.kys \
g77.pg g77.tp g77.vrs g77.cp g77.fns g77.log g77.pgs g77.tps
@@ -425,7 +600,7 @@ f77.maintainer-clean:
# Stage hooks:
# The main makefile has already created stage?/f.
-G77STAGESTUFF = f/*$(objext) f/fini f/stamp-str f/str-*.h f/str-*.j \
+G77STAGESTUFF = f/*$(objext) f/fini stamp-str str-*.h str-*.j \
lang-f77 g77spec.o g77version.o
f77.stage1: stage1-start
===================================================================
Index: f/Makefile.in
--- f/Makefile.in 2000/06/06 07:23:41 1.22
+++ f/Makefile.in 2000/06/20 06:08:33
@@ -1,524 +1,43 @@
-# Makefile for GNU F77 compiler.
-# Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+# Generic Makefile.in for language subdirectory.
+# Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000
+# Free Software Foundation, Inc.
-#This file is part of GNU Fortran.
-
-#GNU Fortran 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.
-
-#GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-#the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-#02111-1307, USA.
-
-# The makefile built from this file lives in the language subdirectory.
-# Its purpose is to provide support for:
+# This file is part of GNU CC.
#
-# 1) recursion where necessary, and only then (building .o's), and
-# 2) building and debugging f771 from the language subdirectory, and
-# 3) nothing else.
+# GNU CC 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.
#
-# The parent makefile handles all other chores, with help from the
-# language makefile fragment, of course.
+# GNU CC 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.
#
-# The targets for external use are:
-# all, TAGS, ???mostlyclean, ???clean.
-
-# Suppress smart makes who think they know how to automake Yacc files
-.y.c:
-
-# Variables that exist for you to override.
-# See below for how to change them for certain systems.
-
-# Various ways of specifying flags for compilations:
-# CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
-# BOOT_CFLAGS is the value of CFLAGS to pass
-# to the stage2 and stage3 compilations
-# XCFLAGS is used for most compilations but not when using the GCC just built.
-XCFLAGS =
-CFLAGS = -g
-BOOT_CFLAGS = -O $(CFLAGS)
-# These exists to be overridden by the x-* and t-* files, respectively.
-X_CFLAGS =
-T_CFLAGS =
+# You should have received a copy of the GNU General Public License along with
+# GNU CC; see the file COPYING. If not, write to the Free Software
+# Foundation, 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# The Makefile built from this file lives in a language subdirectory.
+# Its purpose is to indirect to the parent Makefile in case the user
+# chooses to make things in the language subdirectory.
-X_CPPFLAGS =
-T_CPPFLAGS =
+# Change this line as appropriate.
+frontend = f771
-CC = @CC@
-BISON = bison
-BISONFLAGS =
-LEX = flex
-LEXFLAGS =
-AR = ar
-AR_FLAGS = rc
-SHELL = /bin/sh
-MAKEINFO = makeinfo
-TEXI2DVI = texi2dvi
-
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
-# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
-# It omits XCFLAGS, and specifies -B./.
-# It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.
-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS)
-
-# Tools to use when building a cross-compiler.
-# These are used because `configure' appends `cross-make'
-# to the makefile when making a cross-compiler.
-
-target=@target@
-xmake_file=@dep_host_xmake_file@
-tmake_file=@dep_tmake_file@
-
-# Directory where sources are, from where we are.
+# You shouldn't need to modify anything below.
srcdir = @srcdir@
-VPATH = @srcdir@
-
-# Additional system libraries to link with.
-CLIB=
-
-# Top build directory, relative to here.
-top_builddir = ..
-
-# Internationalization library.
-INTLLIBS = @INTLLIBS@
-
-# Choose the real default target.
-ALL=all
-
-# 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.
-all: all.indirect
-
-# This tells GNU Make version 3 not to put all variables in the environment.
-.NOEXPORT:
-
-# sed inserts variable overrides after the following line.
-####target overrides
-@target_overrides@
-####host overrides
-@host_overrides@
-####cross overrides
-@cross_defines@
-@cross_overrides@
-####build overrides
-@build_overrides@
-#
-# Now figure out from those variables how to compile and link.
-
-all.indirect: Makefile ../f771$(exeext)
-
-# IN_GCC tells obstack.h that we are using gcc's <stddef.h> file.
-INTERNAL_CFLAGS = $(CROSS) -DIN_GCC @extra_c_flags@
-
-# This is the variable actually used when we compile.
-ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS) -W -Wall
-
-# Likewise.
-ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
-
-# This is where we get libiberty.a from.
-LIBIBERTY = ../../libiberty/libiberty.a
-
-# We should be compiling with the built compiler, for which
-# BOOT_LDFLAGS is appropriate. (Formerly we had a separate
-# F771_LDFLAGS, but the ld flags can be taken care of by the target
-# configuration files in egcs.)
-LDFLAGS=$(BOOT_LDFLAGS)
-
-# How to link with both our special library facilities
-# and the system's installed libraries.
-LIBS = $(LIBIBERTY) $(CLIB) $(INTLLIBS)
-LIBDEPS = $(INTLLIBS) $(LIBIBERTY)
-
-# Specify the directories to be searched for header files.
-# Both . and srcdir are used, in that order,
-# so that tm.h and config.h will be found in the compilation
-# subdirectory rather than in the source directory.
-INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)/../../include
-
-# Always use -I$(srcdir)/config when compiling.
-.c.o:
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-
-#
-# Lists of files for various purposes.
-
-# Language-specific object files for g77
-
-F77_OBJS = \
- bad.o \
- bit.o \
- bld.o \
- com.o \
- data.o \
- equiv.o \
- expr.o \
- global.o \
- implic.o \
- info.o \
- intrin.o \
- lab.o \
- lex.o \
- malloc.o \
- name.o \
- parse.o \
- proj.o \
- src.o \
- st.o \
- sta.o \
- stb.o \
- stc.o \
- std.o \
- ste.o \
- storag.o \
- stp.o \
- str.o \
- sts.o \
- stt.o \
- stu.o \
- stv.o \
- stw.o \
- symbol.o \
- target.o \
- top.o \
- type.o \
- version.o \
- where.o
-
-# Language-independent object files.
-OBJS = `cat ../stamp-objlist`
-OBJDEPS = ../stamp-objlist
-
-compiler: ../f771$(exeext)
-../f771$(exeext): $(P) $(F77_OBJS) $(OBJDEPS) $(LIBDEPS)
- rm -f f771$(exeext)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(F77_OBJS) $(OBJS) $(LIBS)
-
-Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
- cd ..; $(SHELL) config.status
-
-native: config.status ../f771$(exeext)
-#
-# Compiling object files from source files.
-
-# Note that dependencies on obstack.h are not written
-# because that file is not part of GCC.
-
-# F77 language-specific files.
-
-# These macros expand to the corresponding g77-source .j files plus
-# the gcc-source files involved (each file itself, plus whatever
-# files on which it depends, but without including stuff resulting
-# from configuration, since we can't guess at that). The files
-# that live in a distclean'd gcc source directory have "$(srcdir)/"
-# prefixes, while the others don't because they'll be created
-# only in the build directory.
-ASSERT_H = $(srcdir)/assert.j $(srcdir)/../assert.h
-CONFIG_H = $(srcdir)/config.j ../config.h
-CONVERT_H = $(srcdir)/convert.j $(srcdir)/../convert.h
-FLAGS_H = $(srcdir)/flags.j $(srcdir)/../flags.h
-GGC_H = $(srcdir)/ggc.j $(srcdir)/../ggc.h $(srcdir)/../varray.h
-GLIMITS_H = $(srcdir)/glimits.j $(srcdir)/../glimits.h
-HCONFIG_H = $(srcdir)/hconfig.j ../hconfig.h
-INPUT_H = $(srcdir)/input.j $(srcdir)/../input.h
-OUTPUT_H = $(srcdir)/output.j $(srcdir)/../output.h
-RTL_H = $(srcdir)/rtl.j $(srcdir)/../rtl.h $(srcdir)/../rtl.def \
- $(srcdir)/../machmode.h $(srcdir)/../machmode.def
-SYSTEM_H = $(srcdir)/system.j $(srcdir)/../system.h
-TCONFIG_H = $(srcdir)/tconfig.j ../tconfig.h
-TM_H = $(srcdir)/tm.j ../tm.h
-TOPLEV_H = $(srcdir)/toplev.j $(srcdir)/../toplev.h
-TREE_H = $(srcdir)/tree.j $(srcdir)/../tree.h $(srcdir)/../real.h \
- $(srcdir)/../tree.def $(srcdir)/../machmode.h $(srcdir)/../machmode.def
-
-#Build the first part of this list with the command line:
-# cd gcc/; make deps-kinda -f f/Makefile.in
-#Note that this command uses the host C compiler;
-# use HOST_CC="./xgcc -B./" to use GCC in the build directory, for example.
-#Also note that this particular build file seems to want to use
-# substitions: $(CONFIG_H) for config.h; $(TREE_H) for tree.h;
-# $(RTL_H) for rtl.h; etc.. deps-kinda uses a sed script to do those
-# substitutions, plus others for elegance.
-
-ansify.o: ansify.c $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H)
-bad.o: bad.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) bad.h bad.def where.h \
- $(GLIMITS_H) top.h malloc.h $(FLAGS_H) com.h com-rt.def $(TREE_H) bld.h \
- bld-op.def bit.h info.h info-b.def info-k.def info-w.def target.h \
- lex.h type.h intrin.h intrin.def lab.h symbol.h symbol.def equiv.h \
- storag.h global.h name.h $(TOPLEV_H)
-bit.o: bit.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H) bit.h \
- malloc.h
-bld.o: bld.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) bld.h bld-op.def bit.h \
- malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def
-com.o: com.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(FLAGS_H) $(RTL_H) $(TOPLEV_H) \
- $(TREE_H) $(OUTPUT_H) $(CONVERT_H) com.h com-rt.def bld.h bld-op.def bit.h \
- malloc.h info.h info-b.def info-k.def info-w.def target.h bad.h \
- bad.def where.h $(GLIMITS_H) top.h lex.h type.h intrin.h intrin.def \
- lab.h symbol.h symbol.def equiv.h storag.h global.h name.h expr.h \
- implic.h src.h st.h $(GGC_H)
-data.o: data.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) data.h bld.h \
- bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def equiv.h global.h \
- name.h intrin.h intrin.def expr.h st.h
-equiv.o: equiv.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) equiv.h bld.h \
- bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def global.h name.h \
- intrin.h intrin.def data.h
-expr.o: expr.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) expr.h bld.h \
- bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def equiv.h global.h \
- name.h intrin.h intrin.def implic.h src.h st.h stamp-str
-fini.o: fini.c proj.h $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H) malloc.h
-global.o: global.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) global.h info.h \
- info-b.def info-k.def info-w.def target.h $(TREE_H) bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h lex.h type.h name.h symbol.h \
- symbol.def bld.h bld-op.def bit.h com.h com-rt.def lab.h storag.h \
- intrin.h intrin.def equiv.h
-implic.o: implic.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) implic.h info.h \
- info-b.def info-k.def info-w.def target.h $(TREE_H) bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h lex.h type.h symbol.h symbol.def \
- bld.h bld-op.def bit.h com.h com-rt.def lab.h storag.h intrin.h \
- intrin.def equiv.h global.h name.h src.h
-info.o: info.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) info.h info-b.def \
- info-k.def info-w.def target.h $(TREE_H) bad.h bad.def where.h $(GLIMITS_H) \
- top.h malloc.h lex.h type.h
-intdoc.o: intdoc.c $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H) intrin.h intrin.def \
- intdoc.h0 intdoc.h0
-intrin.o: intrin.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) intrin.h \
- intrin.def bld.h bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) \
- info.h info-b.def info-k.def info-w.def target.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h lex.h type.h lab.h storag.h symbol.h \
- symbol.def equiv.h global.h name.h expr.h src.h
-lab.o: lab.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) lab.h com.h com-rt.def \
- $(TREE_H) bld.h bld-op.def bit.h malloc.h info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h intrin.h intrin.def symbol.h symbol.def equiv.h storag.h \
- global.h name.h
-lex.o: lex.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) top.h malloc.h where.h \
- $(GLIMITS_H) bad.h bad.def com.h com-rt.def $(TREE_H) bld.h bld-op.def \
- bit.h info.h info-b.def info-k.def info-w.def target.h lex.h type.h \
- intrin.h intrin.def lab.h symbol.h symbol.def equiv.h storag.h \
- global.h name.h src.h $(FLAGS_H) $(INPUT_H) $(TOPLEV_H) $(OUTPUT_H) $(GGC_H)
-malloc.o: malloc.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) malloc.h
-name.o: name.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) bad.h bad.def where.h \
- $(GLIMITS_H) top.h malloc.h name.h global.h info.h info-b.def info-k.def \
- info-w.def target.h $(TREE_H) lex.h type.h symbol.h symbol.def bld.h \
- bld-op.def bit.h com.h com-rt.def lab.h storag.h intrin.h intrin.def \
- equiv.h src.h
-parse.o: parse.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) top.h malloc.h \
- where.h $(GLIMITS_H) com.h com-rt.def $(TREE_H) bld.h bld-op.def bit.h \
- info.h info-b.def info-k.def info-w.def target.h bad.h bad.def lex.h \
- type.h intrin.h intrin.def lab.h symbol.h symbol.def equiv.h storag.h \
- global.h name.h version.h $(FLAGS_H)
-proj.o: proj.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H)
-src.o: src.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) src.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h
-st.o: st.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) st.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h lex.h symbol.h symbol.def bld.h \
- bld-op.def bit.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h type.h lab.h storag.h intrin.h intrin.def equiv.h \
- global.h name.h sta.h stamp-str stb.h expr.h stp.h stt.h stc.h std.h \
- stv.h stw.h ste.h sts.h stu.h
-sta.o: sta.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) sta.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h lex.h stamp-str symbol.h symbol.def \
- bld.h bld-op.def bit.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h type.h lab.h storag.h intrin.h \
- intrin.def equiv.h global.h name.h implic.h stb.h expr.h stp.h stt.h \
- stc.h std.h stv.h stw.h
-stb.o: stb.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stb.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h expr.h bld.h bld-op.def bit.h com.h \
- com-rt.def $(TREE_H) info.h info-b.def info-k.def info-w.def target.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def equiv.h global.h \
- name.h intrin.h intrin.def stp.h stt.h stamp-str src.h sta.h stc.h
-stc.o: stc.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stc.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h bld.h bld-op.def bit.h com.h \
- com-rt.def $(TREE_H) info.h info-b.def info-k.def info-w.def target.h \
- lex.h type.h lab.h storag.h symbol.h symbol.def equiv.h global.h \
- name.h intrin.h intrin.def expr.h stp.h stt.h stamp-str data.h implic.h \
- src.h sta.h std.h stv.h stw.h
-std.o: std.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) std.h bld.h bld-op.def \
- bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def stp.h stt.h stamp-str stv.h stw.h sta.h ste.h sts.h
-ste.o: ste.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(RTL_H) $(TOPLEV_H) ste.h \
- bld.h bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h \
- info-b.def info-k.def info-w.def target.h bad.h bad.def where.h \
- $(GLIMITS_H) top.h lex.h type.h lab.h storag.h symbol.h symbol.def \
- equiv.h global.h name.h intrin.h intrin.def stp.h stt.h stamp-str sts.h \
- stv.h stw.h expr.h sta.h $(GGC_H)
-storag.o: storag.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) storag.h bld.h \
- bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h lab.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def data.h
-stp.o: stp.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stp.h bld.h bld-op.def \
- bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def stt.h
-str.o: str.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) src.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h malloc.h stamp-str lex.h
-sts.o: sts.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) sts.h malloc.h com.h \
- com-rt.def $(TREE_H) bld.h bld-op.def bit.h info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h intrin.h intrin.def lab.h symbol.h symbol.def equiv.h storag.h \
- global.h name.h
-stt.o: stt.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stt.h top.h malloc.h \
- where.h $(GLIMITS_H) bld.h bld-op.def bit.h com.h com-rt.def $(TREE_H) \
- info.h info-b.def info-k.def info-w.def target.h bad.h bad.def lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def stp.h expr.h sta.h stamp-str
-stu.o: stu.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) bld.h bld-op.def bit.h \
- malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def implic.h stu.h sta.h stamp-str
-stv.o: stv.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stv.h lab.h com.h \
- com-rt.def $(TREE_H) bld.h bld-op.def bit.h malloc.h info.h info-b.def \
- info-k.def info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h \
- lex.h type.h intrin.h intrin.def symbol.h symbol.def equiv.h storag.h \
- global.h name.h
-stw.o: stw.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) stw.h bld.h bld-op.def \
- bit.h malloc.h com.h com-rt.def $(TREE_H) info.h info-b.def info-k.def \
- info-w.def target.h bad.h bad.def where.h $(GLIMITS_H) top.h lex.h \
- type.h lab.h storag.h symbol.h symbol.def equiv.h global.h name.h \
- intrin.h intrin.def stv.h sta.h stamp-str
-symbol.o: symbol.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) symbol.h \
- symbol.def bld.h bld-op.def bit.h malloc.h com.h com-rt.def $(TREE_H) \
- info.h info-b.def info-k.def info-w.def target.h bad.h bad.def \
- where.h $(GLIMITS_H) top.h lex.h type.h lab.h storag.h intrin.h \
- intrin.def equiv.h global.h name.h src.h st.h
-target.o: target.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H) \
- target.h $(TREE_H) bad.h bad.def where.h top.h malloc.h info.h \
- info-b.def info-k.def info-w.def type.h lex.h
-top.o: top.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) top.h malloc.h where.h \
- $(GLIMITS_H) bad.h bad.def bit.h bld.h bld-op.def com.h com-rt.def \
- $(TREE_H) info.h info-b.def info-k.def info-w.def target.h lex.h type.h \
- lab.h storag.h symbol.h symbol.def equiv.h global.h name.h intrin.h \
- intrin.def data.h expr.h implic.h src.h st.h $(FLAGS_H) $(TOPLEV_H)
-type.o: type.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) type.h malloc.h
-version.o: version.c
-where.o: where.c proj.h $(CONFIG_H) $(SYSTEM_H) $(ASSERT_H) where.h $(GLIMITS_H) \
- top.h malloc.h lex.h $(GGC_H)
-
-# The rest of this list (Fortran 77 language-specific files) is hand-generated.
-
-stamp-str: str-1t.h str-1t.j str-2t.h str-2t.j \
- str-fo.h str-fo.j str-io.h str-io.j str-nq.h str-nq.j \
- str-op.h str-op.j str-ot.h str-ot.j
- touch stamp-str
-
-str-1t.h str-1t.j: fini str-1t.fin
- ./fini `echo $(srcdir)/str-1t.fin | sed 's,^\./,,'` str-1t.j str-1t.h
-
-str-2t.h str-2t.j: fini str-2t.fin
- ./fini `echo $(srcdir)/str-2t.fin | sed 's,^\./,,'` str-2t.j str-2t.h
-
-str-fo.h str-fo.j: fini str-fo.fin
- ./fini `echo $(srcdir)/str-fo.fin | sed 's,^\./,,'` str-fo.j str-fo.h
-
-str-io.h str-io.j: fini str-io.fin
- ./fini `echo $(srcdir)/str-io.fin | sed 's,^\./,,'` str-io.j str-io.h
-
-str-nq.h str-nq.j: fini str-nq.fin
- ./fini `echo $(srcdir)/str-nq.fin | sed 's,^\./,,'` str-nq.j str-nq.h
-
-str-op.h str-op.j: fini str-op.fin
- ./fini `echo $(srcdir)/str-op.fin | sed 's,^\./,,'` str-op.j str-op.h
-
-str-ot.h str-ot.j: fini str-ot.fin
- ./fini `echo $(srcdir)/str-ot.fin | sed 's,^\./,,'` str-ot.j str-ot.h
-
-fini: fini.o proj-h.o
- $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o fini fini.o proj-h.o
-
-fini.o:
- $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
- `echo $(srcdir)/fini.c | sed 's,^\./,,'` -o $@
-
-# Like proj.o, but depends on hconfig.h instead of config.h.
-proj-h.o: proj.c proj.h $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H)
- $(HOST_CC) -c -DUSE_HCONFIG $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
- `echo $(srcdir)/proj.c | sed 's,^\./,,'` -o $@
-
-# Other than str-*.j, the *.j files are dummy #include files
-# that normally just #include the corresponding back-end *.h
-# files, but not if MAKING_DEPENDENCIES is #defined. The str-*.j
-# files also are not actually included if MAKING_DEPENDENCIES
-# is #defined. The point of all this is to come up with a clean
-# dependencies list whether working in a clean directory, such
-# that str-*.j and such do not exist, or in a directory full
-# of already-built files. Any dependency on a str-*.j file
-# implies a dependency on str.h, so we key on that to replace
-# it with stamp-str, and dependencies on the other *.j files
-# are generally left alone (modulo special macros like RTL_H)
-# because we might not want to recompile all of g77 just
-# because a back-end file changes. MG is usually "-MG" but
-# should be defined with "make MG= deps-kinda..." if using
-# a compiler that doesn't support -MG (gcc does as of 2.6) --
-# it prevents diagnostics when an #include file is missing,
-# as will be the case with proj.h in a clean directory.
-MG=-MG
-deps-kinda:
- $(HOST_CC) -DMAKING_DEPENDENCIES -MM $(MG) *.c 2>&1 | \
- sed -e 's: \([.]/\)*assert[.]j: $$(ASSERT_H):g' \
- -e 's: \([.]/\)*config[.]j: $$(CONFIG_H):g' \
- -e 's: \([.]/\)*convert[.]j: $$(CONVERT_H):g' \
- -e 's: \([.]/\)*flags[.]j: $$(FLAGS_H):g' \
- -e 's: \([.]/\)*glimits[.]j: $$(GLIMITS_H):g' \
- -e 's: \([.]/\)*hconfig[.]j: $$(HCONFIG_H):g' \
- -e 's: \([.]/\)*input[.]j: $$(INPUT_H):g' \
- -e 's: \([.]/\)*output[.]j: $$(OUTPUT_H):g' \
- -e 's: \([.]/\)*rtl[.]j: $$(RTL_H):g' \
- -e 's: \([.]/\)*system[.]j: $$(SYSTEM_H):g' \
- -e 's: \([.]/\)*tconfig[.]j: $$(TCONFIG_H):g' \
- -e 's: \([.]/\)*tm[.]j: $$(TM_H):g' \
- -e 's: \([.]/\)*toplev[.]j: $$(TOPLEV_H):g' \
- -e 's: \([.]/\)*tree[.]j: $$(TREE_H):g' \
- -e 's: \([.]/\)*str[.]h: stamp-str:g' \
- -e 's:.*g77spec.*::g' \
- -e 's%^\(.*\)[ ]*: %\1: %g'
-
-# This rule is just a handy way to build the g77 derived files without
-# having the gcc source tree around.
-g77-only: force
- if [ -f g77.texi ] ; then \
- (cd ..; $(MAKE) srcdir=. HOST_CC=cc HOST_CFLAGS=-g -f f/Make-lang.in f77.rebuilt); \
- else \
- $(MAKE) srcdir=. HOST_CC=cc HOST_CFLAGS=-g -f f/Make-lang.in f77.rebuilt; \
- fi
+VPATH = $(srcdir)
+exeext = @host_exeext@
-#
-# These exist for maintenance purposes.
+all: frontend
+frontend compiler: ../$(frontend)$(exeext)
-# Update the tags table.
-TAGS: force
- cd $(srcdir)/f ; \
- etags *.c *.h ; \
- echo 'l' | tr 'l' '\f' >> TAGS ; \
- etags -a ../*.h ../*.c;
+../$(frontend)$(exeext):
+ cd .. && $(MAKE) $(frontend)$(exeext)
-.PHONY: none all all.indirect f77.rebuilt compiler native deps-kinda g77-only TAGS force
+.DEFAULT:
+ cd .. && $(MAKE) $@
-force:
+.PHONY: all frontend compiler
+.SUFFIXES:
===================================================================
Index: f/ansify.c
--- f/ansify.c 2000/03/06 18:03:55 1.8
+++ f/ansify.c 2000/06/20 06:08:33
@@ -19,28 +19,8 @@ along with GNU Fortran; see the file COP
the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
-/* From f/proj.h, which uses #error -- not all C compilers
- support that, and we want *this* program to be compilable
- by pretty much any C compiler. */
-#include "hconfig.j"
-#include "system.j"
-#include "assert.j"
-#if HAVE_STDDEF_H
-#include <stddef.h>
-#endif
-
-typedef enum
- {
-#if !defined(false) || !defined(true)
- false = 0, true = 1,
-#endif
-#if !defined(FALSE) || !defined(TRUE)
- FALSE = 0, TRUE = 1,
-#endif
- Doggone_Trailing_Comma_Dont_Work = 1
- } bool;
-
-#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
+#include "hconfig.h"
+#include "system.h"
#define die_unless(c) \
do if (!(c)) \
===================================================================
Index: f/assert.j
--- f/assert.j Mon Jun 19 23:08:41 2000
+++ f/assert.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* assert.j -- Wrapper for GCC's assert.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_assert
-#define _J_f_assert
-#include "assert.h"
-#endif
-#endif
===================================================================
Index: f/bad.c
--- f/bad.c 1999/09/16 22:20:42 1.9
+++ f/bad.c 2000/06/20 06:08:33
@@ -38,9 +38,9 @@ the Free Software Foundation, 59 Temple
#include "proj.h"
#include "bad.h"
-#include "flags.j"
+#include "flags.h"
#include "com.h"
-#include "toplev.j"
+#include "toplev.h"
#include "where.h"
/* Externals defined here. */
===================================================================
Index: f/bit.c
--- f/bit.c 1999/02/15 18:16:26 1.4
+++ f/bit.c 2000/06/20 06:08:33
@@ -31,7 +31,7 @@ the Free Software Foundation, 59 Temple
/* Include files. */
#include "proj.h"
-#include "glimits.j"
+#include "glimits.h"
#include "bit.h"
#include "malloc.h"
===================================================================
Index: f/com.c
--- f/com.c 2000/06/14 05:30:06 1.88
+++ f/com.c 2000/06/20 06:08:36
@@ -88,13 +88,13 @@ the Free Software Foundation, 59 Temple
#include "proj.h"
#if FFECOM_targetCURRENT == FFECOM_targetGCC
-#include "flags.j"
-#include "rtl.j"
-#include "toplev.j"
-#include "tree.j"
-#include "output.j" /* Must follow tree.j so TREE_CODE is defined! */
-#include "convert.j"
-#include "ggc.j"
+#include "flags.h"
+#include "rtl.h"
+#include "toplev.h"
+#include "tree.h"
+#include "output.h" /* Must follow tree.h so TREE_CODE is defined! */
+#include "convert.h"
+#include "ggc.h"
#endif /* FFECOM_targetCURRENT == FFECOM_targetGCC */
#define FFECOM_GCC_INCLUDE 1 /* Enable -I. */
===================================================================
Index: f/com.h
--- f/com.h 2000/05/18 17:45:30 1.16
+++ f/com.h 2000/06/20 06:08:36
@@ -188,7 +188,7 @@ typedef enum
#if FFECOM_targetCURRENT == FFECOM_targetGCC
#ifndef TREE_CODE
-#include "tree.j"
+#include "tree.h"
#endif
#ifndef BUILT_FOR_270
===================================================================
Index: f/config.j
--- f/config.j Mon Jun 19 23:08:41 2000
+++ f/config.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* config.j -- Wrapper for GCC's config.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_config
-#define _J_f_config
-#include "config.h"
-#endif
-#endif
===================================================================
Index: f/convert.j
--- f/convert.j Mon Jun 19 23:08:41 2000
+++ f/convert.j Tue May 5 13:32:27 1998
@@ -1,28 +0,0 @@
-/* convert.j -- Wrapper for GCC's convert.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_convert
-#define _J_f_convert
-#include "tree.j"
-#include "convert.h"
-#endif
-#endif
===================================================================
Index: f/flags.j
--- f/flags.j Mon Jun 19 23:08:41 2000
+++ f/flags.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* flags.j -- Wrapper for GCC's flags.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_flags
-#define _J_f_flags
-#include "flags.h"
-#endif
-#endif
===================================================================
Index: f/ggc.j
--- f/ggc.j Mon Jun 19 23:08:41 2000
+++ f/ggc.j Tue May 5 13:32:27 1998
@@ -1,29 +0,0 @@
-/* rtl.j -- Wrapper for GCC's rtl.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_ggc
-#define _J_f_ggc
-#include "system.j"
-#include "config.j"
-#include "ggc.h"
-#endif
-#endif
===================================================================
Index: f/glimits.j
--- f/glimits.j Mon Jun 19 23:08:41 2000
+++ f/glimits.j Tue May 5 13:32:27 1998
@@ -1,28 +0,0 @@
-/* glimits.j -- Wrapper for GCC's glimits.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#if !USE_HOST_LIMITS
-#include "glimits.h"
-#else
-#include <limits.h>
-#endif
-#endif
===================================================================
Index: f/hconfig.j
--- f/hconfig.j Mon Jun 19 23:08:41 2000
+++ f/hconfig.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* hconfig.j -- Wrapper for GCC's hconfig.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_hconfig
-#define _J_f_hconfig
-#include "hconfig.h"
-#endif
-#endif
===================================================================
Index: f/input.j
--- f/input.j Mon Jun 19 23:08:41 2000
+++ f/input.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* input.j -- Wrapper for GCC's input.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_input
-#define _J_f_input
-#include "input.h"
-#endif
-#endif
===================================================================
Index: f/intdoc.c
--- f/intdoc.c 1999/04/07 06:48:36 1.13
+++ f/intdoc.c 2000/06/20 06:08:36
@@ -22,12 +22,9 @@ the Free Software Foundation, 59 Temple
/* From f/proj.h, which uses #error -- not all C compilers
support that, and we want *this* program to be compilable
by pretty much any C compiler. */
-#include "hconfig.j"
-#include "system.j"
-#include "assert.j"
-#if HAVE_STDDEF_H
-#include <stddef.h>
-#endif
+#include "hconfig.h"
+#include "system.h"
+#include "assert.h"
typedef enum
{
===================================================================
Index: f/lex.c
--- f/lex.c 2000/05/09 19:55:51 1.18
+++ f/lex.c 2000/06/20 06:08:37
@@ -27,12 +27,11 @@ the Free Software Foundation, 59 Temple
#include "malloc.h"
#include "src.h"
#if FFECOM_targetCURRENT == FFECOM_targetGCC
-#include "flags.j"
-#include "input.j"
-#include "toplev.j"
-#include "tree.j"
-#include "output.j" /* Must follow tree.j so TREE_CODE is defined! */
-#include "ggc.j"
+#include "flags.h"
+#include "input.h"
+#include "toplev.h"
+#include "output.h"
+#include "ggc.h"
#endif
#ifdef DWARF_DEBUGGING_INFO
===================================================================
Index: f/output.j
--- f/output.j Mon Jun 19 23:08:41 2000
+++ f/output.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* output.j -- Wrapper for GCC's output.h
- Copyright (C) 1998 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_output
-#define _J_f_output
-#include "output.h"
-#endif
-#endif
===================================================================
Index: f/parse.c
--- f/parse.c 1999/02/15 18:17:16 1.7
+++ f/parse.c 2000/06/20 06:08:37
@@ -25,7 +25,7 @@ the Free Software Foundation, 59 Temple
#include "where.h"
#include "version.h"
#if FFECOM_targetCURRENT == FFECOM_targetGCC
-#include "flags.j"
+#include "flags.h"
#endif
#define NAME_OF_STDIN "<stdin>"
===================================================================
Index: f/proj.c
--- f/proj.c 1999/02/15 18:17:17 1.6
+++ f/proj.c 2000/06/20 06:08:37
@@ -20,7 +20,7 @@ the Free Software Foundation, 59 Temple
02111-1307, USA. */
#include "proj.h"
-#include "glimits.j"
+#include "glimits.h"
#ifndef HAVE_STRTOUL
unsigned long int
===================================================================
Index: f/proj.h
--- f/proj.h 1999/11/10 17:57:21 1.13
+++ f/proj.h 2000/06/20 06:08:37
@@ -25,11 +25,11 @@ the Free Software Foundation, 59 Temple
#define _H_f_proj
#ifdef USE_HCONFIG
-#include "hconfig.j"
+#include "hconfig.h"
#else
-#include "config.j"
+#include "config.h"
#endif
-#include "system.j"
+#include "system.h"
#if (GCC_VERSION < 2000)
#error "You have to use gcc 2.x to build g77 (might be fixed in g77-0.6)."
@@ -39,7 +39,7 @@ the Free Software Foundation, 59 Temple
<stddef.h> is needed for offsetof, but technically also NULL,
size_t, ptrdiff_t, and so on. */
-#include "assert.j"
+#include "assert.h"
#if HAVE_STDDEF_H
#include <stddef.h>
===================================================================
Index: f/rtl.j
--- f/rtl.j Mon Jun 19 23:08:41 2000
+++ f/rtl.j Tue May 5 13:32:27 1998
@@ -1,28 +0,0 @@
-/* rtl.j -- Wrapper for GCC's rtl.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_rtl
-#define _J_f_rtl
-#include "config.j"
-#include "rtl.h"
-#endif
-#endif
===================================================================
Index: f/ste.c
--- f/ste.c 2000/06/15 18:05:03 1.22
+++ f/ste.c 2000/06/20 06:08:38
@@ -33,9 +33,9 @@ the Free Software Foundation, 59 Temple
#include "proj.h"
#if FFECOM_targetCURRENT == FFECOM_targetGCC
-#include "rtl.j"
-#include "toplev.j"
-#include "ggc.j"
+#include "rtl.h"
+#include "toplev.h"
+#include "ggc.h"
#endif
#include "ste.h"
===================================================================
Index: f/system.j
--- f/system.j Mon Jun 19 23:08:41 2000
+++ f/system.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* system.j -- Wrapper for GCC's system.h
- Copyright (C) 1998 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_system
-#define _J_f_system
-#include "system.h"
-#endif
-#endif
===================================================================
Index: f/target.c
--- f/target.c 2000/02/26 20:02:01 1.12
+++ f/target.c 2000/06/20 06:08:38
@@ -69,7 +69,7 @@ the Free Software Foundation, 59 Temple
/* Include files. */
#include "proj.h"
-#include "glimits.j"
+#include "glimits.h"
#include "target.h"
#include "bad.h"
#include "info.h"
===================================================================
Index: f/target.h
--- f/target.h 2000/04/15 22:17:00 1.9
+++ f/target.h 2000/06/20 06:08:38
@@ -34,7 +34,7 @@ the Free Software Foundation, 59 Temple
#define HOST_WIDE_INT long
#else
#ifndef TREE_CODE
-#include "tree.j"
+#include "tree.h"
#endif
#endif
===================================================================
Index: f/tconfig.j
--- f/tconfig.j Mon Jun 19 23:08:41 2000
+++ f/tconfig.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* tconfig.j -- Wrapper for GCC's tconfig.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_tconfig
-#define _J_f_tconfig
-#include "tconfig.h"
-#endif
-#endif
===================================================================
Index: f/tm.j
--- f/tm.j Mon Jun 19 23:08:41 2000
+++ f/tm.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* tm.j -- Wrapper for GCC's tm.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_tm
-#define _J_f_tm
-#include "tm.h"
-#endif
-#endif
===================================================================
Index: f/top.c
--- f/top.c 2000/05/17 08:15:28 1.21
+++ f/top.c 2000/06/20 06:08:38
@@ -54,8 +54,8 @@ the Free Software Foundation, 59 Temple
#include "target.h"
#include "where.h"
#if FFECOM_targetCURRENT == FFECOM_targetGCC
-#include "flags.j"
-#include "toplev.j"
+#include "flags.h"
+#include "toplev.h"
#endif
/* Externals defined here. */
===================================================================
Index: f/toplev.j
--- f/toplev.j Mon Jun 19 23:08:41 2000
+++ f/toplev.j Tue May 5 13:32:27 1998
@@ -1,27 +0,0 @@
-/* toplev.j -- Wrapper for GCC's toplev.h
- Copyright (C) 1998 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_toplev
-#define _J_f_toplev
-#include "toplev.h"
-#endif
-#endif
===================================================================
Index: f/tree.j
--- f/tree.j Mon Jun 19 23:08:41 2000
+++ f/tree.j Tue May 5 13:32:27 1998
@@ -1,28 +0,0 @@
-/* tree.j -- Wrapper for GCC's tree.h
- Copyright (C) 1995 Free Software Foundation, Inc.
- Contributed by James Craig Burley.
-
-This file is part of GNU Fortran.
-
-GNU Fortran 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.
-
-GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#ifndef MAKING_DEPENDENCIES
-#ifndef _J_f_tree
-#define _J_f_tree
-#include "config.j"
-#include "tree.h"
-#endif
-#endif
===================================================================
Index: f/where.c
--- f/where.c 2000/05/09 19:55:52 1.8
+++ f/where.c 2000/06/20 06:08:38
@@ -33,7 +33,7 @@ the Free Software Foundation, 59 Temple
#include "where.h"
#include "lex.h"
#include "malloc.h"
-#include "ggc.j"
+#include "ggc.h"
/* Externals defined here. */
===================================================================
Index: f/where.h
--- f/where.h 2000/05/09 19:55:52 1.5
+++ f/where.h 2000/06/20 06:08:38
@@ -61,7 +61,7 @@ typedef unsigned int ffewhereUses_;
/* Include files needed by this one. */
-#include "glimits.j"
+#include "glimits.h"
#include "top.h"
/* Structure definitions. */
===================================================================
Index: java/Make-lang.in
--- java/Make-lang.in 2000/06/06 07:23:42 1.31
+++ java/Make-lang.in 2000/06/20 06:08:39
@@ -40,12 +40,6 @@
# - making any compiler driver (eg: g++)
# - the compiler proper (eg: jc1)
# - define the names for selecting the language in LANGUAGES.
-#
-# Extra flags to pass to recursive makes.
-JAVA_FLAGS_TO_PASS = \
- "JAVA_FOR_BUILD=$(JAVA_FOR_BUILD)" \
- "JAVAFLAGS=$(JAVAFLAGS)" \
- "JAVA_FOR_TARGET=$(JAVA_FOR_TARGET)"
# Actual names to use when installing a native compiler.
JAVA_INSTALL_NAME = `t='$(program_transform_name)'; echo gcj | sed $$t`
@@ -57,7 +51,8 @@ JAVA_CROSS_NAME = `t='$(program_transfor
GCJ = gcj
# Define the names for selecting java in LANGUAGES.
-java: jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext)
+java: jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) \
+ gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext)
# Define the name of target independant tools to be installed in $(bindir)
# Names are subject to changes
@@ -66,8 +61,6 @@ JAVA_TARGET_INDEPENDENT_BIN_TOOLS = gcjh
# Tell GNU make to ignore these if they exist.
.PHONY: java
-# Remember to keep this list in sync with JAVA_OBJS in Makefile.in!!!
-#
JAVA_SRCS = $(srcdir)/java/parse.y $(srcdir)/java/class.c \
$(srcdir)/java/decl.c $(srcdir)/java/expr.c $(srcdir)/java/constants.c \
$(srcdir)/java/lang.c $(srcdir)/java/typeck.c $(srcdir)/java/except.c \
@@ -76,55 +69,135 @@ JAVA_SRCS = $(srcdir)/java/parse.y $(src
$(srcdir)/java/jcf-write.c $(srcdir)/java/buffer.c \
$(srcdir)/java/check-init.c $(srcdir)/java/lex.c $(srcdir)/java/boehm.c \
$(srcdir)/java/jcf-depend.c $(srcdir)/java/jcf-path.c
-
-jc1$(exeext): $(P) $(JAVA_SRCS) $(LIBDEPS) stamp-objlist ggc-callbacks.o
- cd java; $(MAKE) $(LANG_FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) ../jc1$(exeext)
-
-jvspec.o: $(srcdir)/java/jvspec.c system.h $(GCC_H)
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
- $(INCLUDES) $(srcdir)/java/jvspec.c
-
-# Create the compiler driver for $(GCJ).
-$(GCJ)$(exeext): gcc.o jvspec.o version.o \
- prefix.o intl.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gcc.o jvspec.o prefix.o intl.o \
- version.o $(EXTRA_GCC_OBJS) $(LIBS)
-# Create a version of the $(GCJ) driver which calls the cross-compiler.
-$(GCJ)-cross$(exeext): $(GCJ)$(exeext)
- -rm -f $(GCJ)-cross$(exeext)
- cp $(GCJ)$(exeext) $(GCJ)-cross$(exeext)
+JAVA_OBJS = java/parse.o java/class.o java/decl.o java/expr.o java/constants.o \
+ java/lang.o java/typeck.o java/except.o java/verify.o \
+ java/zextract.o java/jcf-io.o java/jcf-parse.o java/mangle.o \
+ java/jcf-write.o java/buffer.o java/check-init.o java/jcf-depend.o \
+ java/jcf-path.o java/xref.o java/boehm.o ggc-callbacks.o
-# Dependencies here must be kept in sync with dependencies in Makefile.in.
-jvgenmain$(exeext): $(srcdir)/java/jvgenmain.c $(srcdir)/java/mangle.c \
- $(LIBDEPS) $(TREE_H)
- cd java && $(MAKE) $(LANG_FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) ../jvgenmain$(exeext)
+jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JAVA_OBJS) $(BACKEND) $(LIBS)
-# This must be kept in sync with dependencies in Makefile.in.
GCJH_SOURCES = $(srcdir)/java/gjavah.c $(srcdir)/java/jcf-io.c \
$(srcdir)/java/zextract.c $(srcdir)/java/jcf-reader.c \
$(srcdir)/java/jcf.h $(srcdir)/java/javaop.h \
$(srcdir)/java/javaop.def $(srcdir)/java/jcf-depend.c \
$(srcdir)/java/jcf-path.c
-gcjh$(exeext): $(GCJH_SOURCES) $(LIBDEPS) $(TREE_H)
- cd java && $(MAKE) $(LANG_FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) ../gcjh$(exeext)
+GCJH_OBJS = java/gjavah.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \
+ java/zextract.o version.o errors.o
-$(INTL_TARGETS): $(srcdir)/java/parse.c $(srcdir)/java/parse-scan.c
+gcjh$(exeext): $(GCJH_OBJS) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCJH_OBJS) $(LIBS)
-# This must be kept in sync with dependencies in Makefile.in.
JV_SCAN_SOURCES = $(srcdir)/java/parse-scan.y $(srcdir)/java/lex.c \
$(srcdir)/java/parse.h $(srcdir)/java/lex.h $(srcdir)/java/jv-scan.c
+
+JV_SCAN_OBJS = java/parse-scan.o java/jv-scan.o version.o
+
+jv-scan$(exeext): $(JV_SCAN_OBJS) $(LIBDEPS)
+ rm -f ../jv-scan$(exeext)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JV_SCAN_OBJS) $(LIBS)
+
+JVGENMAIN_SOURCES = $(srcdir)/java/jvgenmain.c $(srcdir)/java/mangle.c
+JVGENMAIN_OBJS = java/jvgenmain.o java/mangle.o
-jv-scan$(exeext): $(JV_SCAN_SOURCES) stamp-objlist $(LIBDEPS)
- cd java && $(MAKE) $(LANG_FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) ../jv-scan$(exeext)
+jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(LIBS)
-# This must be kept in sync with dependencies in Makefile.in.
JCF_DUMP_SOURCES = $(srcdir)/java/jcf-dump.c $(srcdir)/java/jcf-io.c \
$(srcdir)/java/zextract.c $(TREE_H)
+
+JCF_DUMP_OBJS = java/jcf-dump.o java/jcf-io.o java/jcf-depend.o \
+ java/jcf-path.o java/zextract.o version.o errors.o
+
+jcf-dump$(exeext): $(JCF_DUMP_OBJS) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCF_DUMP_OBJS) $(LIBS)
+
+# These must exist in order to regenerate gcc.pot.
+$(INTL_TARGETS): $(srcdir)/java/parse.c $(srcdir)/java/parse-scan.c
+
+# Create the compiler driver for $(GCJ).
+jvspec.o: $(srcdir)/java/jvspec.c system.h $(GCC_H)
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
+ $(INCLUDES) $(srcdir)/java/jvspec.c
+
+$(GCJ)$(exeext): gcc.o jvspec.o version.o \
+ prefix.o intl.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gcc.o jvspec.o prefix.o intl.o \
+ version.o $(EXTRA_GCC_OBJS) $(LIBS)
+
+# Create a version of the $(GCJ) driver which calls the cross-compiler.
+$(GCJ)-cross$(exeext): $(GCJ)$(exeext)
+ -rm -f $(GCJ)-cross$(exeext)
+ cp $(GCJ)$(exeext) $(GCJ)-cross$(exeext)
-jcf-dump$(exeext): $(JCF_DUMP_SOURCES)
- cd java && $(MAKE) $(LANG_FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) ../jcf-dump$(exeext)
+# Compiling object files from source files.
+JAVA_TREE_H = $(TREE_H) java/java-tree.h java/java-tree.def
+JAVABISONFLAGS = --name-prefix=java_
+
+$(srcdir)/java/parse.c: $(srcdir)/java/parse.y
+ cd $(srcdir) && $(BISON) -t $(BISONFLAGS) $(JAVABISONFLAGS) \
+ -o parse.c parse.y
+
+$(srcdir)/java/parse-scan.c: $(srcdir)/java/parse-scan.y
+ cd $(srcdir) && $(BISON) -t $(BISONFLAGS) -o parse-scan.c parse-scan.y
+
+$(srcdir)/java/keyword.h: $(srcdir)/java/keyword.gperf
+ cd $(srcdir) && \
+ gperf -L C -F ', 0' -p -t -j1 -i 1 -g -o -N java_keyword -k1,3,$$ \
+ keyword.gperf > keyword.h || ( \
+ echo "Please update your 'gperf' from the GCC infrastructure" ; \
+ echo " ftp://sourceware.cygnus.com/pub/egcs/infrastructure/gperf*" ; \
+ exit 1 ) >&2
+
+JAVA_DEPS = $(CONFIG_H) system.h $(JAVA_TREE_H)
+JAVA_DEPS_PLUS = $(JAVA_DEPS) java/jcf.h toplev.h
+
+java/parse.o: java/parse.c java/jcf-reader.c java/lex.c $(JAVA_DEPS) \
+ function.h java/parse.h java/lex.h
+java/jcf-dump.o: java/jcf-dump.c java/jcf-reader.c $(JAVA_DEPS) \
+ java/jcf.h java/javaop.h java/javaop.def version.h
+java/gjavah.o: java/gjavah.c java/jcf-reader.c $(JAVA_DEPS) \
+ java/jcf.h java/javaop.h version.h
+java/jv-scan.o: java/jv-scan.c $(CONFIG_H) system.h version.h
+java/jvgenmain.o: java/jvgenmain.c $(JAVA_DEPS) java/jcf.h
+java/parse-scan.o: java/parse-scan.c $(CONFIG_H) system.h toplev.h \
+ java/lex.c java/parse.h java/lex.h java/keyword.h
+
+java/boehm.o: java/boehm.c $(JAVA_DEPS) java/parse.h
+java/check-init.o: java/check-init.c $(JAVA_DEPS) toplev.h
+java/xref.o: java/xref.c $(JAVA_DEPS) toplev.h java/xref.h
+java/buffer.o: java/buffer.c java/buffer.h $(CONFIG_H) system.h toplev.h
+java/zextract.o: java/zextract.c java/zipfile.h $(CONFIG_H) system.h
+
+java/class.o: java/class.c $(JAVA_DEPS_PLUS) $(RTL_H) output.h java/parse.h
+java/decl.o: java/decl.c $(JAVA_DEPS_PLUS) function.h defaults.h
+java/mangle.o: java/mangle.c $(JAVA_DEPS_PLUS)
+java/constants.o: java/constants.c $(JAVA_DEPS_PLUS)
+java/typeck.o: java/typeck.c $(JAVA_DEPS_PLUS) java/convert.h
+java/except.o: java/except.c $(JAVA_DEPS_PLUS) real.h $(RTL_H) \
+ java/javaop.h java/java-opcodes.h except.h \
+ java/java-except.h eh-common.h function.h
+java/expr.o: java/expr.c $(JAVA_DEPS_PLUS) real.h $(RTL_H) $(EXPR_H) \
+ java/javaop.h java/java-opcodes.h except.h \
+ java/java-except.h java/parse.h
+java/lang.o: java/lang.c $(JAVA_DEPS_PLUS) input.h $(RTL_H) \
+ $(EXPR_H) java/java-tree.def
+java/verify.o: java/verify.c $(JAVA_DEPS_PLUS) java/javaop.h \
+ java/java-opcodes.h java/java-except.h
+
+java/jcf-depend.o: java/jcf-depend.c $(CONFIG_H) system.h java/jcf.h
+java/jcf-io.o: java/jcf-io.c $(JAVA_DEPS)
+java/jcf-parse.o: java/jcf-parse.c $(JAVA_DEPS) flags.h input.h toplev.h \
+ java/java-except.h java/parse.h
+java/jcf-write.o: java/jcf-write.c $(JAVA_DEPS) java/jcf.h $(RTL_H) \
+ java/java-opcodes.h java/parse.h java/buffer.h toplev.h
+java/jcf-path.o: java/jcf-path.c $(CONFIG_H) system.h java/jcf.h
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ -DLIBGCJ_ZIP_FILE='"$(libgcj_zip)"' \
+ $(srcdir)/java/jcf-path.c -o java/jcf-path.o
#
# Build hooks:
@@ -203,9 +276,8 @@ java.stage4: stage4-start
# This target creates the files that can be rebuilt, but go in the
# distribution anyway. It then copies the files to the distdir directory.
-java.distdir:
+java.distdir: java/parse.c java/hash.h
mkdir tmp/java
- cd java ; $(MAKE) $(LANG_FLAGS_TO_PASS) $(JAVA_FLAGS_TO_PASS) parse.c hash.h
cd java; \
for file in *[0-9a-zA-Z+]; do \
ln $$file ../tmp/java >/dev/null 2>&1 || cp $$file ../tmp/java; \
===================================================================
Index: java/Makefile.in
--- java/Makefile.in 2000/06/06 07:23:42 1.51
+++ java/Makefile.in 2000/06/20 06:08:39
@@ -1,6 +1,6 @@
# Makefile for GNU compiler for the Java(TM) language.
# Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1998,
-# 1999 Free Software Foundation, Inc.
+# 1999, 2000 Free Software Foundation, Inc.
#This file is part of GNU CC.
@@ -23,299 +23,31 @@
#of Sun Microsystems, Inc. in the United States and other countries.
#The Free Software Foundation is independent of Sun Microsystems, Inc.
-# The makefile built from this file lives in the language subdirectory.
-# Its purpose is to provide support for:
-#
-# 1) recursion where necessary, and only then (building .o's), and
-# 2) building and debugging cc1 from the language subdirectory, and
-# 3) nothing else.
-#
-# The parent makefile handles all other chores, with help from the
-# language makefile fragment, of course.
-#
-# The targets for external use are:
-# all, TAGS, ???mostlyclean, ???clean.
-
-# Suppress smart makes who think they know how to automake Yacc files
-.y.c:
-
-# Variables that exist for you to override.
-# See below for how to change them for certain systems.
-
-# Various ways of specifying flags for compilations:
-# CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
-# BOOT_CFLAGS is the value of CFLAGS to pass
-# to the stage2 and stage3 compilations
-# XCFLAGS is used for most compilations but not when using the GCC just built.
-XCFLAGS =
-CFLAGS = -g
-BOOT_CFLAGS = -O $(CFLAGS)
-# These exists to be overridden by the x-* and t-* files, respectively.
-X_CFLAGS =
-T_CFLAGS =
-
-X_CPPFLAGS =
-T_CPPFLAGS =
-
-CC = @CC@
-SET_BISON = here=`pwd`; sdir=`cd $(srcdir) && pwd`; if test -f ../../bison; then bison="$$here/../../bison/bison -L $$sdir"; else bison=bison; fi
-BISONFLAGS =
-JAVABISONFLAGS = --name-prefix=java_
-AR = ar
-AR_FLAGS = rc
-SHELL = /bin/sh
-MAKEINFO = makeinfo
-TEXI2DVI = texi2dvi
-
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
-# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
-# It omits XCFLAGS, and specifies -B./.
-# It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.
-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS)
-
-# Tools to use when building a cross-compiler.
-# These are used because `configure' appends `cross-make'
-# to the makefile when making a cross-compiler.
-
-# We don't use cross-make. Instead we use the tools
-# from the build tree, if they are available.
-# program_transform_name and objdir are set by configure.in.
-program_transform_name =
-objdir = .
+# The Makefile built from this file lives in a language subdirectory.
+# Its purpose is to indirect to the parent Makefile in case the user
+# chooses to make things in the language subdirectory.
-#version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c`
-#mainversion=`sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/' < $(srcdir)/version.c`
-
-# Directory where sources are, from where we are.
srcdir = @srcdir@
-VPATH = @srcdir@
-
-# Directory holding libgcj.zip.
-prefix = @prefix@
-datadir = @datadir@
-libgcj_zip = $(datadir)/libgcj.zip
-
-# Additional system libraries to link with.
-CLIB=
-
-# Top build directory, relative to here.
-top_builddir = ..
-
-# Internationalization library.
-INTLLIBS = @INTLLIBS@
-
-# Choose the real default target.
-ALL=all
-
-# 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.
-all: all.indirect
-
-# This tells GNU Make version 3 not to put all variables in the environment.
-.NOEXPORT:
-
-# sed inserts variable overrides after the following line.
-####target overrides
-@target_overrides@
-####host overrides
-@host_overrides@
-####cross overrides
-@cross_overrides@
-####build overrides
-@build_overrides@
-####site overrides
-#
-# Now figure out from those variables how to compile and link.
+VPATH = $(srcdir)
+exeext = @host_exeext@
-all.indirect: Makefile ../jc1$(exeext) ../jcf-dump$(exeext) \
+all: frontend
+frontend compiler: ../jc1$(exeext) ../jcf-dump$(exeext) \
../jvgenmain$(exeext) ../gcjh$(exeext) ../jv-scan$(exeext)
-
-# IN_GCC tells obstack.h that we are using gcc's <stddef.h> file.
-INTERNAL_CFLAGS = $(CROSS) -DIN_GCC @extra_c_flags@
-
-# This is the variable actually used when we compile.
-ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS) -W -Wall
-# Likewise.
-ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
+../jc1$(exeext):
+ cd .. && $(MAKE) jc1$(exeext)
+../jcf-dump$(exeext):
+ cd .. && $(MAKE) jcf-dump$(exeext)
+../jvgenmain$(exeext):
+ cd .. && $(MAKE) jvgenmain$(exeext)
+../gcjh$(exeext):
+ cd .. && $(MAKE) gcjh$(exeext)
+../jv-scan$(exeext):
+ cd .. && $(MAKE) jv-scan$(exeext)
-# This is where we get libiberty.a from.
-LIBIBERTY = ../../libiberty/libiberty.a
-
-# How to link with both our special library facilities
-# and the system's installed libraries.
-LIBS = $(INTLLIBS) $(LIBIBERTY) $(CLIB)
-LIBDEPS = $(INTLLIBS) $(LIBIBERTY) ../errors.o
-
-# Specify the directories to be searched for header files.
-# Both . and srcdir are used, in that order,
-# so that tm.h and config.h will be found in the compilation
-# subdirectory rather than in the source directory.
-INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)/../../include
-
-# Always use -I$(srcdir)/config when compiling.
-.c.o:
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
-
-#
-# Lists of files for various purposes.
-
-# Language-specific object files for Gcc/Java:
-
-# Remember to keep this list in sync with JAVA_SRCS in Make-lang.in!!!
-#
-JAVA_OBJS = parse.o class.o decl.o expr.o constants.o lang.o typeck.o \
- except.o verify.o zextract.o jcf-io.o jcf-parse.o mangle.o jcf-write.o \
- buffer.o check-init.o jcf-depend.o jcf-path.o xref.o boehm.o
-
-JAVA_OBJS_LITE = parse-scan.o jv-scan.o
-
-# Language-independent object files.
-OBJS = `cat ../stamp-objlist` ../ggc-callbacks.o
-OBJDEPS = ../stamp-objlist ../ggc-callbacks.o
-
-compiler: ../jc1$(exeext) ../jv-scan$(exeext)
-../jc1$(exeext): $(P) $(JAVA_OBJS) $(OBJDEPS) $(LIBDEPS)
- rm -f ../jc1$(exeext)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JAVA_OBJS) $(OBJS) $(LIBS)
-../jv-scan$(exeext): $(P) $(JAVA_OBJS_LITE) $(OBJDEPS) ../version.o $(LIBDEPS)
- rm -f ../jv-scan$(exeext)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JAVA_OBJS_LITE) ../version.o $(LIBS)
-
-../jcf-dump$(exeext): jcf-dump.o jcf-io.o jcf-depend.o jcf-path.o \
- zextract.o ../version.o $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ jcf-dump.o jcf-io.o \
- jcf-depend.o jcf-path.o zextract.o ../errors.o ../version.o $(LIBS)
-
-# Dependencies here must be kept in sync with dependencies in Make-lang.in.
-../jvgenmain$(exeext): jvgenmain.o mangle.o $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ jvgenmain.o mangle.o $(LIBS)
-
-../gcjh$(exeext): gjavah.o jcf-io.o jcf-depend.o jcf-path.o \
- zextract.o ../version.o $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gjavah.o jcf-io.o \
- jcf-depend.o jcf-path.o zextract.o ../errors.o ../version.o $(LIBS)
-
-Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
- cd ..; $(SHELL) config.status
-
-native: config.status ../jc1$(exeext)
-#
-# Compiling object files from source files.
-TREE_H = $(srcdir)/../tree.h $(srcdir)/../real.h $(srcdir)/../tree.def \
- $(srcdir)/../machmode.h $(srcdir)/../machmode.def ../tree-check.h
-JAVA_TREE_H = $(TREE_H) java-tree.h java-tree.def
-RTL_H = $(srcdir)/../rtl.h $(srcdir)/../rtl.def \
- $(srcdir)/../machmode.h $(srcdir)/../machmode.def ../genrtl.h
-EXPR_H = $(srcdir)/../expr.h ../insn-codes.h
-
-# Separating PARSE_DIR from PARSE_RELDIR lets us easily change the
-# code to support building parse.c in the build directory, at some
-# expense in readability.
-PARSE_DIR = $(srcdir)
-PARSE_RELDIR = .
-PARSE_C = $(PARSE_DIR)/parse.c
-PARSE_SCAN_C = $(PARSE_DIR)/parse-scan.c
-PARSE_H = $(srcdir)/parse.h
-
-$(PARSE_C): $(srcdir)/parse.y
- $(SET_BISON); \
- cd $(PARSE_DIR) && $$bison -t $(BISONFLAGS) $(JAVABISONFLAGS) \
- -o parse.c $(PARSE_RELDIR)/parse.y
-$(PARSE_SCAN_C): $(srcdir)/parse-scan.y
- $(SET_BISON); \
- cd $(PARSE_DIR) && $$bison -t $(BISONFLAGS) -o parse-scan.c \
- $(PARSE_RELDIR)/parse-scan.y
-
-lex.c: keyword.h lex.h
-
-lang.o: $(srcdir)/java-tree.def
-
-keyword.h: keyword.gperf
- gperf -L C -F ', 0' -p -t -j1 -i 1 -g -o -N java_keyword -k1,3,$$ \
- keyword.gperf > keyword.h || ( \
- echo "Please update your 'gperf' from the GCC infrastructure" >&2 ; \
- echo " ftp://sourceware.cygnus.com/pub/egcs/infrastructure/gperf*" >&2 ; \
- exit 1 )
-
-jcf-path.o : jcf-path.c $(CONFIG_H) $(srcdir)/../system.h jcf.h
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
- -DLIBGCJ_ZIP_FILE='"$(libgcj_zip)"' $(srcdir)/jcf-path.c
-
-# These exist for maintenance purposes.
-
-# Update the tags table.
-TAGS: force
- cd $(srcdir) ; \
- etags *.c *.h ; \
- echo 'l' | tr 'l' '\f' >> TAGS ; \
- echo 'parse.y,0' >> TAGS ; \
- etags -a ../*.h ../*.c;
-
-.PHONY: TAGS
-
-mostlyclean:
- rm -f *.o
-
-clean: mostlyclean
-
-force:
-
-parse.o : $(PARSE_C) jcf-reader.c $(CONFIG_H) $(srcdir)/../system.h \
- $(srcdir)/../function.h $(JAVA_TREE_H) $(srcdir)/lex.c $(PARSE_H) \
- $(srcdir)/lex.h
-jcf-dump.o : $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H) jcf-dump.c \
- jcf-reader.c jcf.h javaop.h javaop.def $(srcdir)/../version.h
-gjavah.o : $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H) gjavah.c \
- jcf-reader.c jcf.h javaop.h $(srcdir)/../version.h
-boehm.o: boehm.c $(CONFIG_H) $(srcdir)/../system.h $(TREE_H) $(JAVA_TREE_H) \
- $(PARSE_H)
-buffer.o : buffer.c $(CONFIG_H) buffer.h $(srcdir)/../gansidecl.h \
- $(srcdir)/../system.h $(srcdir)/../toplev.h
-check-init.o : check-init.c $(CONFIG_H) $(srcdir)/../gansidecl.h \
- $(JAVA_TREE_H) $(srcdir)/../system.h $(srcdir)/../toplev.h
-class.o : class.c $(CONFIG_H) $(JAVA_TREE_H) $(RTL_H) jcf.h $(PARSE_H) \
- $(srcdir)/../gansidecl.h $(srcdir)/../toplev.h $(srcdir)/../system.h \
- $(srcdir)/../output.h
-constants.o : constants.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h \
- $(srcdir)/../toplev.h $(srcdir)/../system.h
-decl.o : decl.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h \
- $(srcdir)/../toplev.h $(srcdir)/../system.h $(srcdir)/../function.h \
- $(srcdir)/../defaults.h
-except.o : except.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(srcdir)/../real.h \
- $(RTL_H) javaop.h java-opcodes.h $(srcdir)/../except.h java-except.h \
- $(srcdir)/../eh-common.h $(srcdir)/../toplev.h $(srcdir)/../system.h \
- $(srcdir)/../function.h
-expr.o : expr.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(srcdir)/../real.h \
- $(RTL_H) $(EXPR_H) javaop.h java-opcodes.h $(srcdir)/../except.h \
- java-except.h java-except.h parse.h $(srcdir)/../toplev.h \
- $(srcdir)/../system.h
-jcf-depend.o : jcf-depend.c $(CONFIG_H) $(srcdir)/../system.h jcf.h
-jcf-io.o : jcf-io.c $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H)
-jcf-parse.o : jcf-parse.c $(CONFIG_H) $(JAVA_TREE_H) $(srcdir)/../flags.h \
- $(srcdir)/../input.h java-except.h $(srcdir)/../system.h \
- $(srcdir)/../toplev.h $(PARSE_H)
-jcf-write.o : jcf-write.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(RTL_H) \
- java-opcodes.h parse.h buffer.h $(srcdir)/../system.h $(srcdir)/../toplev.h
-jv-scan.o : jv-scan.c $(CONFIG_H) $(srcdir)/../system.h $(srcdir)/../version.h
-jvgenmain.o : jvgenmain.c $(CONFIG_H) $(srcdir)/../system.h
-lang.o : lang.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(srcdir)/../input.h \
- $(srcdir)/../toplev.h $(srcdir)/../system.h $(RTL_H) $(EXPR_H)
-mangle.o : mangle.c $(CONFIG_H) jcf.h $(JAVA_TREE_H) $(srcdir)/../system.h \
- $(srcdir)/../toplev.h
-parse-scan.o : $(CONFIG_H) $(srcdir)/../system.h $(srcdir)/../toplev.h \
- $(srcdir)/lex.c $(PARSE_H) $(srcdir)/lex.h
-typeck.o : typeck.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h convert.h \
- $(srcdir)/../toplev.h $(srcdir)/../system.h
-verify.o : verify.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h javaop.h java-opcodes.h \
- java-except.h $(srcdir)/../toplev.h $(srcdir)/../system.h
-xref.o : xref.c xref.h $(CONFIG_H) $(JAVA_TREE_H) $(srcdir)/../toplev.h \
- $(srcdir)/../system.h
-zextract.o : zextract.c $(CONFIG_H) $(srcdir)/../system.h zipfile.h
+.DEFAULT:
+ cd .. && $(MAKE) $@
+.PHONY: all frontend compiler
+.SUFFIXES:
===================================================================
Index: objc/Make-lang.in
--- objc/Make-lang.in 2000/05/03 22:45:31 1.25
+++ objc/Make-lang.in 2000/06/20 06:08:39
@@ -36,11 +36,6 @@
# - the compiler proper (eg: cc1plus)
# - define the names for selecting the language in LANGUAGES.
#
-# Extra flags to pass to recursive makes.
-OBJC_FLAGS_TO_PASS = \
- "OBJC_FOR_BUILD=$(OBJC_FOR_BUILD)" \
- "OBJCFLAGS=$(OBJCFLAGS)" \
- "OBJC_FOR_TARGET=$(OBJC_FOR_TARGET)" \
# Actual names to use when installing a native compiler.
#OBJC_INSTALL_NAME = `t='$(program_transform_name)'; echo c++ | sed $$t`
@@ -59,8 +54,8 @@ OBJECTIVE-C objective-c: cc1obj$(exeext)
# Language-specific object files for Objective C.
OBJC_OBJS = objc-parse.o objc-act.o $(C_AND_OBJC_OBJS)
-cc1obj$(exeext): $(P) $(OBJS) $(OBJC_OBJS) $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(OBJC_OBJS) $(LIBS)
+cc1obj$(exeext): $(OBJC_OBJS) $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(OBJC_OBJS) $(BACKEND) $(LIBS)
# Objective C language specific files.
@@ -160,7 +155,6 @@ objc.stage4: stage4-start
# the build in the inner directory.
objc.distdir: $(srcdir)/objc/objc-parse.c
mkdir tmp/objc
-# cd objc ; $(MAKE) $(LANG_FLAGS_TO_PASS) objc-parse.c
cd objc; \
for file in *[0-9a-zA-Z+]; do \
ln $$file ../tmp/objc >/dev/null 2>&1 || cp $$file ../tmp/objc; \
===================================================================
Index: objc/Makefile.in
--- objc/Makefile.in 1999/01/06 21:10:33 1.6
+++ objc/Makefile.in 2000/06/20 06:08:39
@@ -1,6 +1,7 @@
-# GNU Objective C frontend Makefile
-# Copyright (C) 1993, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-#
+# Generic Makefile.in for language subdirectory.
+# Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000
+# Free Software Foundation, Inc.
+
# This file is part of GNU CC.
#
# GNU CC is free software; you can redistribute it and/or modify it under the
@@ -16,58 +17,27 @@
# GNU CC; see the file COPYING. If not, write to the Free Software
# Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-
-# The Makefile built from this file lives in the objc language subdirectory.
-# Its purpose is to provide support for:
-#
-# 1. recursion where necessary, and only then (building .o's), and
-# 2. building and debugging cc1objc from the language subdirectory.
-#
-# The parent Makefile handles all other chores, with help from the language
-# Makefile fragment.
-#
-# The targets for external use are `all' and `mostlyclean'.
-
-SHELL=/bin/sh
-
-OPTIMIZE= -O
-
-srcdir = .
-VPATH = $(srcdir)
-
-AR = ar
-AR_FLAGS = rc
-
-# Define this as & to perform parallel make on a Sequent.
-# Note that this has some bugs, and it seems currently necessary
-# to compile all the gen* files first by hand to avoid erroneous results.
-P =
-
-# Definition of `all' is here so that new rules inserted by sed
-# do not specify the default target.
-all: all.indirect
-# sed inserts variable overrides after the following line.
-####target overrides
-####host overrides
-####cross overrides
-####build overrides
-#
+# The Makefile built from this file lives in a language subdirectory.
+# Its purpose is to indirect to the parent Makefile in case the user
+# chooses to make things in the language subdirectory.
-# Now figure out from those variables how to compile and link.
-all.indirect: Makefile frontend
+# Change this line as appropriate.
+frontend = cc1obj
-frontend:
- cd ..; $(MAKE) cc1obj$(exeext)
+# You shouldn't need to modify anything below.
+srcdir = @srcdir@
+VPATH = $(srcdir)
+exeext = @host_exeext@
-Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
- cd ..; $(SHELL) config.status
+all: frontend
+frontend compiler: ../$(frontend)$(exeext)
-mostlyclean:
- -rm -f *.o xforward fflags
-clean: mostlyclean
-distclean: mostlyclean
-extraclean: mostlyclean
+../$(frontend)$(exeext):
+ cd .. && $(MAKE) $(frontend)$(exeext)
-# For Sun VPATH.
+.DEFAULT:
+ cd .. && $(MAKE) $@
+.PHONY: all frontend compiler
+.SUFFIXES: