Home | History | Annotate | Line # | Download | only in fortran
      1 /* Contribution to the specs for the GNU Compiler Collection
      2    from GNU Fortran 95 compiler.
      3    Copyright (C) 2002-2022 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
     84