1 /* Definitions for specs for C++. 2 Copyright (C) 1995-2021 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 /* This is the contribution to the `default_compilers' array in gcc.c for 21 g++. */ 22 23 #ifndef CPLUSPLUS_CPP_SPEC 24 #define CPLUSPLUS_CPP_SPEC 0 25 #endif 26 27 {".cc", "@c++", 0, 0, 0}, 28 {".cp", "@c++", 0, 0, 0}, 29 {".cxx", "@c++", 0, 0, 0}, 30 {".cpp", "@c++", 0, 0, 0}, 31 {".c++", "@c++", 0, 0, 0}, 32 {".C", "@c++", 0, 0, 0}, 33 {".CPP", "@c++", 0, 0, 0}, 34 {".H", "@c++-header", 0, 0, 0}, 35 {".hpp", "@c++-header", 0, 0, 0}, 36 {".hp", "@c++-header", 0, 0, 0}, 37 {".hxx", "@c++-header", 0, 0, 0}, 38 {".h++", "@c++-header", 0, 0, 0}, 39 {".HPP", "@c++-header", 0, 0, 0}, 40 {".tcc", "@c++-header", 0, 0, 0}, 41 {".hh", "@c++-header", 0, 0, 0}, 42 {"@c++-header", 43 "%{E|M|MM:cc1plus -E %{fmodules-ts:-fdirectives-only -fmodule-header}" 44 " %(cpp_options) %2 %(cpp_debug_options)}" 45 "%{!E:%{!M:%{!MM:" 46 " %{save-temps*|no-integrated-cpp:cc1plus -E" 47 " %{fmodules-ts:-fdirectives-only -fmodule-header}" 48 " %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}" 49 " cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed" 50 " %{fmodules-ts:-fdirectives-only}" 51 " %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}" 52 " %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}" 53 " %{fmodules-ts:-fmodule-header %{fpreprocessed:-fdirectives-only}}" 54 " %(cc1_options) %2" 55 " %{!fsyntax-only:" 56 " %{!S:-o %g.s%V}" 57 " %{!fmodule-*:%{!fmodules-*:%{!fdump-ada-spec*:" 58 " %{!o*:--output-pch=%i.gch}%W{o*:--output-pch=%*}}}}}" 59 "}}}", 60 CPLUSPLUS_CPP_SPEC, 0, 0}, 61 {"@c++-system-header", 62 "%{E|M|MM:cc1plus -E" 63 " %{fmodules-ts:-fdirectives-only -fmodule-header=system}" 64 " %(cpp_options) %2 %(cpp_debug_options)}" 65 "%{!E:%{!M:%{!MM:" 66 " %{save-temps*|no-integrated-cpp:cc1plus -E" 67 " %{fmodules-ts:-fdirectives-only -fmodule-header=system}" 68 " %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}" 69 " cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed" 70 " %{fmodules-ts:-fdirectives-only}" 71 " %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}" 72 " %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}" 73 " %{fmodules-ts:-fmodule-header=system" 74 " %{fpreprocessed:-fdirectives-only}}" 75 " %(cc1_options) %2" 76 " %{!fsyntax-only:" 77 " %{!S:-o %g.s%V}" 78 " %{!fmodule-*:%{!fmodules-*:%{!fdump-ada-spec*:" 79 " %{!o*:--output-pch=%i.gch}%W{o*:--output-pch=%*}}}}}" 80 "}}}", 81 CPLUSPLUS_CPP_SPEC, 0, 0}, 82 {"@c++-user-header", 83 "%{E|M|MM:cc1plus -E" 84 " %{fmodules-ts:-fdirectives-only -fmodule-header=user}" 85 " %(cpp_options) %2 %(cpp_debug_options)}" 86 "%{!E:%{!M:%{!MM:" 87 " %{save-temps*|no-integrated-cpp:cc1plus -E" 88 " %{fmodules-ts:-fdirectives-only -fmodule-header=user}" 89 " %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}" 90 " cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed" 91 " %{fmodules-ts:-fdirectives-only}" 92 " %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}" 93 " %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}" 94 " %{fmodules-ts:-fmodule-header=user %{fpreprocessed:-fdirectives-only}}" 95 " %(cc1_options) %2" 96 " %{!fsyntax-only:" 97 " %{!S:-o %g.s%V}" 98 " %{!fmodule-*:%{!fmodules-*:%{!fdump-ada-spec*:" 99 " %{!o*:--output-pch=%i.gch}%W{o*:--output-pch=%*}}}}}" 100 "}}}", 101 CPLUSPLUS_CPP_SPEC, 0, 0}, 102 {"@c++", 103 "%{E|M|MM:cc1plus -E %(cpp_options) %2 %(cpp_debug_options)}" 104 "%{!E:%{!M:%{!MM:" 105 " %{save-temps*|no-integrated-cpp:cc1plus -E" 106 " %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}" 107 " cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed" 108 " %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}" 109 " %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}" 110 " %(cc1_options) %2" 111 " %{!fsyntax-only:" 112 " %{fmodule-only:%{!S:-o %g.s%V}}" 113 " %{!fmodule-only:%(invoke_as)}}" 114 "}}}", 115 CPLUSPLUS_CPP_SPEC, 0, 0}, 116 {".ii", "@c++-cpp-output", 0, 0, 0}, 117 {"@c++-cpp-output", 118 "%{!E:%{!M:%{!MM:" 119 " cc1plus -fpreprocessed %i %(cc1_options) %2" 120 " %{!fsyntax-only:" 121 " %{fmodule-only:%{!S:-o %g.s%V}}" 122 " %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}" 123 "}}}", 0, 0, 0}, 124