1/* Definitions for specs for Objective-C.
2 Copyright (C) 1998-2024 Free Software Foundation, Inc.
3
4This file is part of GCC.
5
6GCC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 3, or (at your option)
9any later version.
10
11GCC is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along 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

source code of gcc/objc/lang-specs.h