2008-07-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[official-gcc.git] / gcc / java / lang-specs.h
blob87653bf528fe5ae71dbcab66c9e82c07294aa0ca
1 /* Definitions for specs for the GNU compiler for the Java(TM) language.
2 Copyright (C) 1996, 1998, 1999, 2000, 2001, 2003, 2004, 2006, 2007
3 Free Software Foundation, Inc.
5 This file is part of GCC.
7 GCC is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
10 any later version.
12 GCC is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>.
21 Java and all Java-based marks are trademarks or registered trademarks
22 of Sun Microsystems, Inc. in the United States and other countries.
23 The Free Software Foundation is independent of Sun Microsystems, Inc. */
25 /* This is the contribution to the `default_compilers' array in gcc.c for
26 Java. */
28 {".java", "@java" , 0, 0, 0},
29 {".class", "@java" , 0, 0, 0},
30 {".zip", "@java" , 0, 0, 0},
31 {".jar", "@java" , 0, 0, 0},
32 {"@java",
33 "%{fjni:%{femit-class-files:%e-fjni and -femit-class-files are incompatible}}\
34 %{fjni:%{femit-class-file:%e-fjni and -femit-class-file are incompatible}}\
35 %{femit-class-file:%{!fsyntax-only:%e-femit-class-file should used along with -fsyntax-only}}\
36 %{femit-class-files:%{!fsyntax-only:%e-femit-class-file should used along with -fsyntax-only}}\
37 %{E:%{e-E is not valid for gcj}}\
38 %{.java|fsaw-java-file:ecj1 %i %{W*} %{w} %{g*} \
39 %{fbootclasspath*} \
40 %{fenable-assertions*} \
41 %{fdisable-assertions*} \
42 %{fencoding*} %{ffilelist-file} \
43 %{foutput-class-dir*} %{g*} \
44 %{fsource*} %{!fsource*:-fsource=1.5} \
45 %{ftarget*} %{!femit-class-files|!ftarget*:-ftarget=1.5} \
46 %{!findirect-dispatch:-fzip-dependency %U.zip} \
47 %{!fsyntax-only:-fzip-target %U.jar}}\n \
48 %{.class|.zip|.jar|!fsyntax-only:jc1 \
49 %{.java|fsaw-java-file:%U.jar -fsource-filename=%i %<ffilelist-file} \
50 %{.class|.zip|.jar|ffilelist-file|fcompile-resource*:%i} \
51 %(jc1) %(cc1_options) %{I*} %{!findirect-dispatch:-faux-classpath %U.zip} \
52 %{MD:-MD_} %{MMD:-MMD_} %{M} %{MM} %{MA} %{MT*} %{MF*}\
53 %(invoke_as)}",
54 0, 0, 0},
57 FIXME: we don't use %|, even though we could, because we need the
58 dependency zip to be ready early enough. We could work around
59 this by not having a dependency zip and instead teaching jc1 to
60 read a special manifest file included in the sole zip, this
61 manifest would say which files are to be compiled and which are
62 not.