1 | /* Definitions for specs for Objective-C. |
2 | Copyright (C) 1998-2024 Free Software Foundation, Inc. |
3 | |
4 | This file is part of GCC. |
5 | |
6 | GCC is free software; you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by |
8 | the Free Software Foundation; either version 3, or (at your option) |
9 | any later version. |
10 | |
11 | GCC is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | GNU General Public License for more details. |
15 | |
16 | You should have received a copy of the GNU General Public License |
17 | along with GCC; see the file COPYING3. If not see |
18 | <http://www.gnu.org/licenses/>. */ |
19 | |
20 | |
21 | /* This is the contribution to the `default_compilers' array in gcc.cc |
22 | for objc. */ |
23 | |
24 | {.suffix: ".m" , .spec: "@objective-c" , .cpp_spec: 0, .combinable: 0, .needs_preprocessing: 0}, |
25 | {.suffix: "@objective-c" , |
26 | .spec: "%{E|M|MM:cc1obj -E %{traditional|traditional-cpp:-traditional-cpp}\ |
27 | %(cpp_options) %(cpp_debug_options)}\ |
28 | %{!E:%{!M:%{!MM:\ |
29 | %{traditional|traditional-cpp:\ |
30 | %eGNU Objective C no longer supports traditional compilation}\ |
31 | %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\ |
32 | cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}\ |
33 | %{!save-temps*:%{!no-integrated-cpp:\ |
34 | cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}}\ |
35 | %{!fsyntax-only:%(invoke_as)}}}}" , .cpp_spec: 0, .combinable: 0, .needs_preprocessing: 0}, |
36 | {.suffix: "@objective-c-header" , |
37 | .spec: "%{E|M|MM:cc1obj -E %{traditional|traditional-cpp:-traditional-cpp}\ |
38 | %(cpp_options) %(cpp_debug_options)}\ |
39 | %{!E:%{!M:%{!MM:\ |
40 | %{traditional|traditional-cpp:\ |
41 | %eGNU Objective C no longer supports traditional compilation}\ |
42 | %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\ |
43 | cc1obj -fpreprocessed %b.mi %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ |
44 | -o %g.s %{!o*:--output-pch %i.gch}\ |
45 | %W{o*:--output-pch %*}%V}\ |
46 | %{!save-temps*:%{!no-integrated-cpp:\ |
47 | cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ |
48 | -o %g.s %{!o*:--output-pch %i.gch}\ |
49 | %W{o*:--output-pch %*}%V}}}}}" , .cpp_spec: 0, .combinable: 0, .needs_preprocessing: 0}, |
50 | {.suffix: ".mi" , .spec: "@objective-c-cpp-output" , .cpp_spec: 0, .combinable: 0, .needs_preprocessing: 0}, |
51 | {.suffix: "@objective-c-cpp-output" , |
52 | .spec: "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ |
53 | %{!fsyntax-only:%(invoke_as)}}}}" , .cpp_spec: 0, .combinable: 0, .needs_preprocessing: 0}, |
54 | {.suffix: "@objc-cpp-output" , |
55 | .spec: "%nobjc-cpp-output is deprecated; please use objective-c-cpp-output instead\n\ |
56 | %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ |
57 | %{!fsyntax-only:%(invoke_as)}}}}" , .cpp_spec: 0, .combinable: 0, .needs_preprocessing: 0}, |
58 | |