aboutsummaryrefslogtreecommitdiff
path: root/gcc/treelang
diff options
context:
space:
mode:
authorJames A. Morrison <phython@gcc.gnu.org>2005-03-06 16:02:40 +0000
committerJames A. Morrison <phython@gcc.gnu.org>2005-03-06 16:02:40 +0000
commit597eb1d72b005b3a1c8d9790bd62004eda9b187f (patch)
tree1a805173c7e56dc2ed8fcd470bf616943dfd90e5 /gcc/treelang
parentd7e5b287a07ee0615c5c8f27ac2e5f27bbb1467c (diff)
downloadgcc-597eb1d72b005b3a1c8d9790bd62004eda9b187f.zip
gcc-597eb1d72b005b3a1c8d9790bd62004eda9b187f.tar.gz
gcc-597eb1d72b005b3a1c8d9790bd62004eda9b187f.tar.bz2
re PR treelang/20326 (treelang does install the backend as a driver)
2005-03-06 James A. Morrison <phython@gcc.gnu.org> PR other/20326 * Make-lang.in (gtreelang, treelang/spec.o): New targets. * spec.c: New file. From-SVN: r95972
Diffstat (limited to 'gcc/treelang')
-rw-r--r--gcc/treelang/ChangeLog6
-rw-r--r--gcc/treelang/Make-lang.in21
-rw-r--r--gcc/treelang/spec.c63
3 files changed, 86 insertions, 4 deletions
diff --git a/gcc/treelang/ChangeLog b/gcc/treelang/ChangeLog
index 17f1076..236d633 100644
--- a/gcc/treelang/ChangeLog
+++ b/gcc/treelang/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-06 James A. Morrison <phython@gcc.gnu.org>
+
+ PR other/20326
+ * Make-lang.in (gtreelang, treelang/spec.o): New targets.
+ * spec.c: New file.
+
2005-02-27 Kazu Hirata <kazu@cs.umass.edu>
* treelang.texi: Fix a typo.
diff --git a/gcc/treelang/Make-lang.in b/gcc/treelang/Make-lang.in
index 54ae2e0..9c198d7 100644
--- a/gcc/treelang/Make-lang.in
+++ b/gcc/treelang/Make-lang.in
@@ -33,8 +33,8 @@
#
# It should also provide rules for:
#
-# - making any compiler driver (eg: GCC)
-# - the compiler proper (eg: treelang)
+# - making any compiler driver (eg: gcc)
+# - the compiler proper (eg: tree1)
# - define the names for selecting the language in LANGUAGES.
#
@@ -54,7 +54,9 @@ GCC_EXTRAS = -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include
# GCC_FOR_TREELANG = ./xgcc $(GCC_EXTRAS)
TREE_GENERATED = lex.c parse.c parse.h parse.output
-TREE_EXES = tree1
+# We need to use something other than treelang here because the directory
+# is called treelang
+TREE_EXES = gtreelang
#strict warnings for treelang
treelang-warn = $(STRICT_WARN)
@@ -70,7 +72,7 @@ treelang/lex.o-warn = -Wno-error
treelang TREELANG:treelang.done
-treelang.done: tree1$(exeext)
+treelang.done: gtreelang$(exeext) tree1$(exeext)
$(STAMP) treelang.done
# no preprocessor
@@ -84,6 +86,14 @@ tree1$(exeext): treelang/tree1.o treelang/treetree.o treelang/tree-convert.o \
treelang/lex.o treelang/parse.o \
$(BACKEND) $(LIBS) attribs.o
+# Create the compiler driver treelang.
+gtreelang$(exeext): gcc.o version.o prefix.o intl.o $(EXTRA_GCC_OBJS) \
+ $(LIBDEPS) treelang/spec.o
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ treelang/spec.o \
+ gcc.o version.o prefix.o intl.o $(EXTRA_GCC_OBJS) $(LIBS)
+
+
+
#
# Compiling object files from source files.
@@ -102,6 +112,9 @@ treelang/treetree.o: treelang/treetree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
treelang/tree-convert.o: treelang/tree-convert.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h diagnostic.h $(TREE_H) flags.h toplev.h langhooks.h $(TM_H)
+treelang/spec.o: treelang/spec.c $(CONFIG_H) $(SYSTEM_H) \
+ coretypes.h diagnostic.h $(TREE_H) flags.h toplev.h langhooks.h $(TM_H)
+
treelang/parse.o: treelang/parse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) diagnostic.h treelang/treelang.h input.h treelang/treetree.h
diff --git a/gcc/treelang/spec.c b/gcc/treelang/spec.c
new file mode 100644
index 0000000..9f4a57f
--- /dev/null
+++ b/gcc/treelang/spec.c
@@ -0,0 +1,63 @@
+/* Specific flags and argument handling of the Treelang front-end.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+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. */
+
+#include "config.h"
+#include "system.h"
+#include "gcc.h"
+
+#include "coretypes.h"
+#include "tm.h"
+
+const struct spec_function lang_specific_spec_functions[] = {{0,0}};
+
+void
+lang_specific_driver (int *in_argc, const char *const **in_argv,
+ int *in_added_libraries ATTRIBUTE_UNUSED)
+{
+ int argc = *in_argc, i;
+ const char *const *argv = *in_argv;
+
+ for (i = 1; i < argc; ++i)
+ {
+ if (!strcmp (argv[i], "-fversion")) /* Really --version!! */
+ {
+ printf ("\
+GNU Treelang (GCC %s)\n\
+Copyright (C) 2005 Free Software Foundation, Inc.\n\
+\n\
+GNU Treelang comes with NO WARRANTY, to the extent permitted by law.\n\
+You may redistribute copies of GNU Treelang\n\
+under the terms of the GNU General Public License.\n\
+For more information about these matters, see the file named COPYING\n\
+", version_string);
+ exit (0);
+ }
+ }
+}
+
+/* Called before linking. Returns 0 on success and -1 on failure. */
+int
+lang_specific_pre_link (void) /* Not used for Treelang. */
+{
+ return 0;
+}
+
+/* Number of extra output files that lang_specific_pre_link may generate. */
+int lang_specific_extra_outfiles = 0; /* Not used for Treelang. */