summaryrefslogtreecommitdiff
path: root/gcc/java/lang-specs.h
blob: c3f596a340b5ff341e4741666470d3b4d9eb5860 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* Definitions for specs for the GNU compiler for the Java(TM) language.
   Copyright (C) 1996-2015 Free Software Foundation, Inc.

This file is part of GCC.

GCC 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 3, or (at your option)
any later version.

GCC 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 GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.

Java and all Java-based marks are trademarks or registered trademarks
of Sun Microsystems, Inc. in the United States and other countries.
The Free Software Foundation is independent of Sun Microsystems, Inc.  */

/* This is the contribution to the `default_compilers' array in gcc.c for
   Java.  */

  {".java",   "@java" , 0, 0, 0},
  {".class",  "@java" , 0, 0, 0},
  {".zip",    "@java" , 0, 0, 0},
  {".jar",    "@java" , 0, 0, 0},
  {"@java",
   "%{fjni:%{femit-class-files:%e-fjni and -femit-class-files are incompatible}}\
    %{fjni:%{femit-class-file:%e-fjni and -femit-class-file are incompatible}}\
    %{femit-class-file:%{!fsyntax-only:%e-femit-class-file should used along with -fsyntax-only}}\
    %{femit-class-files:%{!fsyntax-only:%e-femit-class-file should used along with -fsyntax-only}}\
    %{E:%{e-E is not valid for gcj}}\
    %{.java|fsaw-java-file:ecj1 %i %{W*} %{w} %{g*}			\
      %{fbootclasspath*}						\
      %{fenable-assertions*}						\
      %{fdisable-assertions*}						\
      %{fencoding*} %{ffilelist-file}					\
      %{foutput-class-dir*} %{g*}					\
      %{fsource*} %{!fsource*:-fsource=1.5}				\
      %{ftarget*} %{!femit-class-files|!ftarget*:-ftarget=1.5}		\
      %{!findirect-dispatch:-fzip-dependency %U.zip}			\
      %{!fsyntax-only:-fzip-target %U.jar}}\n				\
    %{.class|.zip|.jar|!fsyntax-only:jc1				\
      %{.java|fsaw-java-file:%U.jar -fsource-filename=%i %<ffilelist-file} \
      %{.class|.zip|.jar|ffilelist-file|fcompile-resource*:%i}		\
      %(jc1) %(cc1_options) %{I*} %{!findirect-dispatch:-faux-classpath %U.zip} \
      %{MD:-MD_} %{MMD:-MMD_} %{M} %{MM} %{MA} %{MT*} %{MF*}\
      %(invoke_as)}",
      0, 0, 0},

  /*
    FIXME: we don't use %|, even though we could, because we need the
    dependency zip to be ready early enough.  We could work around
    this by not having a dependency zip and instead teaching jc1 to
    read a special manifest file included in the sole zip, this
    manifest would say which files are to be compiled and which are
    not.
   */