# Makefile for GNU C++ compiler.
-# Copyright (C) 1987, 88, 90, 91, 92, 93, 1994 Free Software Foundation, Inc.
+# Copyright (C) 1987, 88, 90-4, 1995 Free Software Foundation, Inc.
#This file is part of GNU CC.
#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, 675 Mass Ave, Cambridge, MA 02139, USA.
+#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:
+# 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
CC = cc
BISON = bison
-BISONFLAGS = --yacc
+BISONFLAGS =
LEX = flex
LEXFLAGS =
AR = ar
####host overrides
####cross overrides
####build overrides
-\f
+#\f
# Now figure out from those variables how to compile and link.
all.indirect: Makefile ../cc1plus
# This tells GNU make version 3 not to export all the variables
# defined in this file into the environment.
.NOEXPORT:
-\f
+#\f
# Lists of files for various purposes.
# Language-specific object files for g++
CXX_OBJS = call.o decl.o errfn.o expr.o pt.o sig.o typeck2.o \
- class.o decl2.o error.o gc.o lex.o parse.o ptree.o spew.o typeck.o cvt.o \
- edsel.o except.o init.o method.o search.o tree.o xref.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 tree.o xref.o repo.o
# Language-independent object files.
-OBJS = `cat ../stamp-objlist` ../c-common.o
-OBJDEPS = ../stamp-objlist ../c-common.o
+OBJS = `cat ../stamp-objlist` ../c-common.o ../c-pragma.o
+OBJDEPS = ../stamp-objlist ../c-common.o ../c-pragma.o
compiler: ../cc1plus
../cc1plus: $(P) $(CXX_OBJS) $(OBJDEPS) $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o ../cc1plus \
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
$(CXX_OBJS) $(OBJS) $(LIBS)
Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
cd ..; $(SHELL) config.status
native: config.status ../cc1plus
-\f
+#\f
# Compiling object files from source files.
# Note that dependencies on obstack.h are not written
$(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 tree.def
+CXX_TREE_H = $(TREE_H) cp-tree.h cp-tree.def
PARSE_H = $(srcdir)/parse.h
PARSE_C = $(srcdir)/parse.c
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(BIG_SWITCHFLAG) \
`echo $(PARSE_C) | sed 's,^\./,,'`
-#$(PARSE_C) $(PARSE_H) : $(srcdir)/parse.y
-# @echo expect 1 shift/reduce confict and 34 reduce/reduce 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 expect 1 shift/reduce confict and 34 reduce/reduce conflicts.
- $(BISON) $(BISONFLAGS) -d $(srcdir)/parse.y
- grep '^#define[ ]*YYEMPTY' y.tab.c >>y.tab.h
- $(srcdir)/../move-if-change y.tab.c $(PARSE_C)
- $(srcdir)/../move-if-change y.tab.h $(PARSE_H)
- cp $(PARSE_C) y.tab.c
- touch stamp-parse
+CONFLICTS = expect 20 shift/reduce conflicts and 39 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
+# $(srcdir)/../move-if-change y.tab.c $(PARSE_C)
+# $(srcdir)/../move-if-change y.tab.h $(PARSE_H)
+# cp $(PARSE_C) y.tab.c
+# touch stamp-parse
# hash.h really depends on $(srcdir)/gxx.gperf.
# But this would screw things for people that don't have gperf,
spew.o : spew.c $(CONFIG_H) $(CXX_TREE_H) \
$(PARSE_H) $(srcdir)/../flags.h lex.h
lex.o : lex.c $(CONFIG_H) $(CXX_TREE_H) \
- $(PARSE_H) input.c $(srcdir)/../flags.h hash.h lex.h
+ $(PARSE_H) input.c $(srcdir)/../flags.h hash.h lex.h $(srcdir)/../c-pragma.h
decl.o : decl.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h \
lex.h decl.h $(srcdir)/../stack.h
decl2.o : decl2.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h \
typeck.o : typeck.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H)
class.o : class.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h
call.o : call.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h class.h
+friend.o : friend.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H)
init.o : init.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H)
method.o : method.c $(CONFIG_H) $(CXX_TREE_H) class.h
cvt.o : cvt.c $(CONFIG_H) $(CXX_TREE_H) class.h
search.o : search.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../stack.h $(srcdir)/../flags.h
tree.o : tree.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h
ptree.o : ptree.c $(CONFIG_H) $(CXX_TREE_H)
-gc.o : gc.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h
-except.o : except.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H)
+rtti.o : rtti.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h
+except.o : except.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) $(srcdir)/../except.h
expr.o : expr.c $(CONFIG_H) $(CXX_TREE_H) $(RTL_H) $(srcdir)/../flags.h \
$(srcdir)/../expr.h ../insn-codes.h
-edsel.o : edsel.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../stack.h $(srcdir)/../flags.h
xref.o : xref.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../input.h
-pt.o : pt.c $(CONFIG_H) $(CXX_TREE_H) decl.h $(PARSE_H)
+pt.o : pt.c $(CONFIG_H) $(CXX_TREE_H) decl.h $(PARSE_H) lex.h
error.o : error.c $(CONFIG_H) $(CXX_TREE_H)
errfn.o : errfn.c $(CONFIG_H) $(CXX_TREE_H)
sig.o : sig.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h
-\f
+repo.o : repo.c $(CONFIG_H) $(CXX_TREE_H)
+#\f
# These exist for maintenance purposes.
# Update the tags table.