Home | History | Annotate | Line # | Download | only in cp
      1 /* Definitions for specs for C++.
      2    Copyright (C) 1995-2022 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.cc 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