re PR treelang/20326 (treelang does install the backend as a driver)
authorJames A. Morrison <phython@gcc.gnu.org>
Sun, 6 Mar 2005 16:02:40 +0000 (16:02 +0000)
committerJames A. Morrison <phython@gcc.gnu.org>
Sun, 6 Mar 2005 16:02:40 +0000 (16:02 +0000)
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

gcc/treelang/ChangeLog
gcc/treelang/Make-lang.in
gcc/treelang/spec.c [new file with mode: 0644]

index 17f1076fcee1772f266f6afbd980b96520d4d3bb..236d633fbb670968772b162d57e651a240a88ecc 100644 (file)
@@ -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.
index 54ae2e01b92a243ab9e8961939525879f320e0e1..9c198d7c3dc5826d1125fd4059b1ed56810cd1e8 100644 (file)
@@ -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.
 #\f
 
@@ -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)
+
+
+
 #\f
 # 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 (file)
index 0000000..9f4a57f
--- /dev/null
@@ -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.  */