1/* Definitions for specs for Objective-C++.
2   Copyright (C) 2005-2020 Free Software Foundation, Inc.
3   Contributed by Ziemowit Laski  <zlaski@apple.com>
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GCC is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING3.  If not see
19<http://www.gnu.org/licenses/>.  */
20
21
22/* This is the contribution to the `default_compilers' array in gcc.c for
23   obj-c++.  It is based on -- and should be kept in sync with -- the g++
24   spec (found in cp/lang-specs.h).  */
25
26#ifndef CPLUSPLUS_CPP_SPEC
27#define CPLUSPLUS_CPP_SPEC 0
28#endif
29
30  {".mm",  "@objective-c++", 0, 0, 0},
31  {".M",   "@objective-c++", 0, 0, 0},
32  {"@objective-c++-header",
33    "%{E|M|MM:cc1objplus -E %(cpp_options) %2 %(cpp_debug_options)}\
34     %{!E:%{!M:%{!MM:\
35       %{save-temps*|no-integrated-cpp:cc1objplus -E\
36		%(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\
37      cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\
38	      %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
39	%(cc1_options) %2\
40        -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}",
41     CPLUSPLUS_CPP_SPEC, 0, 0},
42  {"@objective-c++",
43    "%{E|M|MM:cc1objplus -E %(cpp_options) %2 %(cpp_debug_options)}\
44     %{!E:%{!M:%{!MM:\
45       %{save-temps*|no-integrated-cpp:cc1objplus -E\
46		%(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\
47      cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\
48	      %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
49	%(cc1_options) %2\
50       %{!fsyntax-only:%(invoke_as)}}}}",
51     CPLUSPLUS_CPP_SPEC, 0, 0},
52  {".mii", "@objective-c++-cpp-output", 0, 0, 0},
53  {"@objective-c++-cpp-output",
54   "%{!M:%{!MM:%{!E:\
55    cc1objplus -fpreprocessed %i %(cc1_options) %2\
56    %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
57  {"@objc++-cpp-output",
58   "%nobjc++-cpp-output is deprecated; please use objective-c++-cpp-output instead\n\
59    %{!M:%{!MM:%{!E:\
60    cc1objplus -fpreprocessed %i %(cc1_options) %2\
61    %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
62