(root)/
gcc-13.2.0/
gcc/
fortran/
lang-specs.h
       1  /* Contribution to the specs for the GNU Compiler Collection
       2     from GNU Fortran 95 compiler.
       3     Copyright (C) 2002-2023 Free Software Foundation, Inc.
       4  
       5     This file is free software; you can redistribute it and/or modify
       6     it under the terms of the GNU General Public License as published by
       7     the Free Software Foundation; either version 3 of the License, or
       8     (at your option) any later version.
       9  
      10     This file is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU General Public License for more details.
      14  
      15     You should have received a copy of the GNU General Public License
      16     along with GCC; see the file COPYING3.  If not see
      17     <http://www.gnu.org/licenses/>.  */
      18  
      19  /* This is the contribution to the `default_compilers' array in gcc.cc
      20     for the f95 language.  */
      21  
      22  /* Identical to gcc.cc (cpp_options), but omitting %(cpp_unique_options)
      23     and -fpch-preprocess on -save-temps.  */
      24  #define CPP_ONLY_OPTIONS    "%1 %{m*} %{f*} %{g*:%{!g0:%{g*} \
      25  			     %{!fno-working-directory:-fworking-directory}}} \
      26  			     %{std*&ansi&trigraphs} %{W*&pedantic*} %{w} \
      27  			     %{O*} %{undef}"
      28  
      29  /* Options that f951 should know about, even if not preprocessing.  */
      30  #define CPP_FORWARD_OPTIONS "%{i*} %{I*} %{M*}"
      31  
      32  #define F951_CPP_OPTIONS    "%{!nocpp: -cpp=%g.f90 %{E} %(cpp_unique_options) \
      33  			     %{E|M|MM:%(cpp_debug_options) " CPP_ONLY_OPTIONS \
      34  			     " -fsyntax-only};: " CPP_FORWARD_OPTIONS "}"
      35  
      36  #ifndef TARGET_F951_OPTIONS
      37  #define TARGET_F951_OPTIONS
      38  #endif
      39  
      40  #define F951_OPTIONS        "%(cc1_options) %{J*} \
      41  			     %{!nostdinc:-fintrinsic-modules-path finclude%s}" \
      42  			     TARGET_F951_OPTIONS \
      43  			     "%{!fsyntax-only:%(invoke_as)}"
      44  #define F951_SOURCE_FORM    "%{!ffree-form:-ffixed-form}"
      45  
      46  
      47  {".F",   "@f77-cpp-input", 0, 0, 0},
      48  {".FOR", "@f77-cpp-input", 0, 0, 0},
      49  {".FTN", "@f77-cpp-input", 0, 0, 0},
      50  {".fpp", "@f77-cpp-input", 0, 0, 0},
      51  {".FPP", "@f77-cpp-input", 0, 0, 0},
      52  {"@f77-cpp-input",
      53      "f951 %i " F951_SOURCE_FORM " " \
      54  	  F951_CPP_OPTIONS " %{!E:" F951_OPTIONS "}", 0, 0, 0},
      55  {".f",   "@f77", 0, 0, 0},
      56  {".for", "@f77", 0, 0, 0},
      57  {".ftn", "@f77", 0, 0, 0},
      58  {"@f77",
      59      "f951 %i " F951_SOURCE_FORM " \
      60            %{E:%{!cpp:%egfortran does not support -E without -cpp}} \
      61            %{cpp:" F951_CPP_OPTIONS ";: " CPP_FORWARD_OPTIONS  "} \
      62  	  %{!E:" F951_OPTIONS "}", 0, 0, 0},
      63  {".F90", "@f95-cpp-input", 0, 0, 0},
      64  {".F95", "@f95-cpp-input", 0, 0, 0},
      65  {".F03", "@f95-cpp-input", 0, 0, 0},
      66  {".F08", "@f95-cpp-input", 0, 0, 0},
      67  {"@f95-cpp-input",
      68      "f951 %i " F951_CPP_OPTIONS " %{!E:" F951_OPTIONS "}", 0, 0, 0},
      69  {".f90", "@f95", 0, 0, 0},
      70  {".f95", "@f95", 0, 0, 0},
      71  {".f03", "@f95", 0, 0, 0},
      72  {".f08", "@f95", 0, 0, 0},
      73  {"@f95",
      74      "f951 %i %{E:%{!cpp:%egfortran does not support -E without -cpp}}\
      75  	  %{cpp:" F951_CPP_OPTIONS ";:  " CPP_FORWARD_OPTIONS  "} \
      76  	  %{!E:" F951_OPTIONS "}", 0, 0, 0},
      77  
      78  
      79  #undef CPP_ONLY_OPTIONS
      80  #undef CPP_FORWARD_OPTIONS
      81  #undef F951_SOURCE_FORM
      82  #undef F951_CPP_OPTIONS
      83  #undef F951_OPTIONS