New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
annex_bld_cfg.html in vendors/FCM-2017.10.0/doc/user_guide – NEMO

source: vendors/FCM-2017.10.0/doc/user_guide/annex_bld_cfg.html @ 13688

Last change on this file since 13688 was 10672, checked in by nicolasmartin, 5 years ago

Reimport latest FCM release

File size: 27.4 KB
Line 
1<!DOCTYPE html>
2<html>
3<head>
4  <title>FCM: User Guide: Annex: Declarations in FCM 1 build configuration
5  file</title>
6  <meta name="author" content="FCM team" />
7  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8  <link rel="icon" href="../etc/fcm-icon.png" type="image/png" />
9  <link rel="shortcut icon" href="../etc/fcm-icon.png" type="image/png" />
10  <link href="../etc/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" />
11  <link href="../etc/fcm.css" rel="stylesheet" media="screen" />
12</head>
13<body>
14  <div class="navbar navbar-inverse">
15    <div class="container-fluid">
16      <div class="navbar-header">
17        <a class="navbar-brand" href=".."><span class="fcm-version">FCM</span></a>
18      </div>
19      <div class="collapse navbar-collapse">
20        <ul class="nav navbar-nav">
21          <li><a href="../installation/">Installation</a></li>
22
23          <li><a class="active" href="#">User Guide</a></li>
24        </ul>
25      </div>
26    </div>
27  </div>
28
29  <div class="page-header">
30    <div class="fcm-page-content pull-right well well-sm"></div>
31    <h1>FCM: User Guide: Annex: Declarations in FCM 1 build configuration
32    file</h1>
33  </div>
34
35  <div class="container">
36  <div class="row">
37  <div class="col-md-12">
38
39  <p><em>The FCM 1 build system is deprecated. The documentation for the current
40  build system can be found at <a href="make.html">FCM Make</a>.</em></p>
41
42  <p>The following is a list of supported declarations for the configuration
43  file used by the FCM build system. Unless otherwise stated, the fields in all
44  declaration labels are not case sensitive. Build declarations can be made
45  either in a build configuration file or in an extract configuration file. In
46  the latter case, the prefix <code>BLD::</code> must be added at the beginning
47  of each label to inform the extract system that the declaration is a build
48  system declaration. (In a build configuration file, the prefix
49  <code>BLD::</code> is optional.)</p>
50
51  <dl>
52    <dt>CFG::TYPE</dt>
53
54    <dd>
55      <p>The configuration file type, the value should always be
56      <samp>bld</samp> for a build configuration file. This declaration is
57      compulsory for all build configuration files. (This declaration is
58      automatic when the extract system creates a build configuration
59      file.)</p>
60
61      <p>Example:</p>
62      <pre>
63cfg::type  bld
64</pre>
65    </dd>
66
67    <dt>CFG::VERSION</dt>
68
69    <dd>
70      <p>The file format version, currently <samp>1.0</samp> - a version is
71      included so that we shall be able to read the configuration file
72      correctly should we decide to change its format in the future. (This
73      declaration is automatic when the extract system creates a build
74      configuration file.)</p>
75
76      <p>Example:</p>
77      <pre>
78cfg::version  1.0
79</pre>
80    </dd>
81
82    <dt>%&lt;name&gt;</dt>
83
84    <dd>
85      <p><code>%&lt;name&gt;</code> declares an internal variable
86      <var>&lt;name&gt;</var> that can later be re-used.</p>
87
88      <p>Example:</p>
89      <pre>
90%my_variable  -foo -bar
91tool::fflags  %my_variable
92tool::cflags  %my_variable
93</pre>
94    </dd>
95
96    <dt>INC</dt>
97
98    <dd>
99      <p>This declares the name of a file containing build configuration. The
100      lines in the declared file will be included inline to the current
101      configuration file.</p>
102
103      <p>Example:</p>
104      <pre>
105inc  ~frva/var_stable_22.0/cfg/bld.cfg
106# ... and then your changes ...
107</pre>
108    </dd>
109
110    <dt>
111      DEST[::ROOTDIR]<br />
112      <del>DIR::ROOT</del>
113    </dt>
114
115    <dd>
116      <p>The destination of the build. It must be declared for each build.
117      (This declaration is automatic when the extract system creates a build
118      configuration file. The value is normally the path of the extract
119      destination.)</p>
120
121      <p>Example:</p>
122      <pre>
123dest  $HOME/my_build
124</pre>
125    </dd>
126
127    <dt>USE</dt>
128
129    <dd>
130      <p>This inherits settings from a previous build. The value must be must
131      be either the configuration file or the root directory of a successful
132      build. Output of the build, the tools, the exclude dependency
133      declarations, the file type registers declarations are automatically
134      inherited from the declared build. Source directories and build targets
135      declarations may be inherited depending on the INHERIT declarations. (If
136      you have a USE declaration in an extract, the resulting build
137      configuration file will contain an automatic USE declaration, which
138      expects an inherited build at the extract destination.)</p>
139
140      <p>Example:</p>
141      <pre>
142# Use VAR build 22.0
143USE  ~frva/var_22.0
144</pre>
145    </dd>
146
147    <dt>INHERIT::&lt;name&gt;[::&lt;pcks&gt;]</dt>
148
149    <dd>
150      <p>This declares whether build targets (&lt;name&gt; =
151      <samp>target</samp>) or source directories (&lt;name&gt; =
152      <samp>src</samp>) can be inherited using the USE statement. By default,
153      source directories are inherited, while build targets are not. Use the
154      value <samp>true</samp> to switch on inheritance, or <samp>false</samp>
155      to switch off. For source directories declarations, the name of a
156      sub-package &lt;pcks&gt; can be specified. If a sub-package pcks is
157      specified, the declaration applies only to the files and directories
158      under the sub-package. Otherwise, the declaration applies globally.</p>
159
160      <p>Example:</p>
161      <pre>
162inherit::target   true
163inherit::src      false
164</pre>
165    </dd>
166
167    <dt>SRC[::&lt;pcks&gt;]</dt>
168
169    <dd>
170      <p>This declares a source file/directory. You must specify the
171      sub-package &lt;pcks&gt; if the source file/directory is located outside
172      of the <samp>src/</samp> sub-directory of the build destination or if you
173      want to redefine the sub-package name of the source file/directory. The
174      name of the sub-package &lt;pcks&gt; must be unique. Package names are
175      delimited by double colons <code>::</code> or double underscores
176      <code>__</code>. If you declare a relative path, it is assumed to be
177      relative to the <samp>src/</samp> sub-directory of the build destination.
178      (This declaration is automatic when the extract system creates the build
179      configuration file. The list of declared source directories will be the
180      list of extracted source directories.)</p>
181
182      <p>Example:</p>
183      <pre>
184src::var/code/VarMod_PF  $HOME/var/src/code/VarMod_PF
185</pre>
186    </dd>
187
188    <dt>SEARCH_SRC</dt>
189
190    <dd>
191      <p>This declares a flag to determine whether the build system should
192      search the <samp>src/</samp> sub-directory of the build root for a list
193      of source files. The automatic search is useful if the build system is
194      invoked standalone and the <samp>src/</samp> sub-directory contains the
195      full source tree of the build. The default is to search
196      (<samp>true</samp>). Set the flag to <samp>false</samp> to switch off the
197      behaviour. (When the extract system creates a build configuration file,
198      it declares all source files. Searching of the source sub-directory
199      should not be required, and so this flag is automatically set to
200      <samp>false</samp>.)</p>
201
202      <p>Example:</p>
203      <pre>
204search_src  false
205</pre>
206    </dd>
207
208    <dt>TARGET</dt>
209
210    <dd>
211      <p>Specify the targets for the build. Multiple targets can be declared in
212      one or more declarations. These targets become the dependencies of the
213      default <samp>all</samp> target in the <em>Makefile</em>. It is worth
214      noting that <code>TARGET</code> declarations are cumulative. A later
215      declaration does not override an earlier one - it simply adds more targets
216      to the list.</p>
217
218      <p>Example:</p>
219      <pre>
220target  VarScr_AnalysePF VarScr_CovAccStats
221target  VarScr_CovPFstats
222</pre>
223    </dd>
224
225    <dt>TOOL::&lt;label&gt;[::&lt;pcks&gt;]</dt>
226
227    <dd>
228      <p>This declaration is used to specify a build tool such as the Fortran
229      compiler or its flags. The &lt;label&gt; determines the tool you are
230      declaring. A TOOL declaration normally applies globally. However, where
231      it is sensible to do so, a sub-package &lt;pcks&gt; can be specified. In
232      which case, the declaration applies only to the files and directories
233      under the sub-package. A list of &lt;label&gt; fields is available
234      <a href="#tools-list">later in this annex</a>.</p>
235
236      <p>Example:</p>
237      <pre>
238tool::fc      sxmpif90
239tool::fflags  -Chopt -Pstack
240
241tool::cc      sxmpic++
242tool::cflags  -O nomsg -pvctl nomsg
243
244tool::ar      sxar
245</pre>
246    </dd>
247
248    <dt>EXE_DEP[::&lt;target&gt;]</dt>
249
250    <dd>
251      <p>This declares an extra dependency for either all main program targets
252      or only &lt;target&gt; if it is specified. If &lt;target&gt; is
253      specified, it must be the name of a main program target. The value of the
254      declaration is a space delimited list. Each item in the list can either
255      be a valid name of a sub-package or the name of a valid object target. If
256      a sub-package name is used, the <em>make</em> rule for the main program
257      will be set to depend on all (non-program) object files within the
258      sub-package.</p>
259
260      <p>Example:</p>
261      <pre>
262# Only foo.exe to depend on the package foo::bar and egg.o
263exe_dep::foo.exe  foo::bar egg.o
264
265# All executables to depend on the package foo::bar and egg.o
266exe_dep  foo::bar egg.o
267
268# Only foo.exe to depend on all objects
269exe_dep::foo.exe
270
271# All executables to depend on all objects
272exe_dep
273</pre>
274    </dd>
275
276    <dt>BLOCKDATA[::&lt;target&gt;]</dt>
277
278    <dd>
279      <p>This declares a BLOCKDATA dependency for either all main program
280      targets or only &lt;target&gt; if it is specified. If &lt;target&gt; is
281      specified, it must be the name of a main program target. The value of the
282      declaration is a space delimited list. Each item in the list must be the
283      name of a valid object target containing a Fortran BLOCKDATA program
284      unit.</p>
285
286      <p>Example:</p>
287      <pre>
288# Only foo.exe to depend on blkdata.o
289blockdata::foo.exe  blkdata.o
290
291# All executables to depend on fbd.o
292blockdata  fbd.o
293</pre>
294    </dd>
295
296    <dt>EXCL_DEP[::&lt;pcks&gt;]</dt>
297
298    <dd>
299      <p>This declaration is used to specify whether a particular dependency
300      should be ignored during the automatic dependency scan. If a sub-package
301      &lt;pcks&gt; is specified, the declaration applies only to the files and
302      directories under the sub-package. Otherwise, the declaration applies
303      globally. The value of this declaration must contain one or two fields
304      (separated by the double colon <code>::</code>). The first field denotes
305      the dependency type, and the second field is the dependency target. If
306      the second field is specified, it will only exclude the dependency to the
307      specified target. Otherwise, it will exclude all dependency to the
308      specified type. The following dependency types are supported:</p>
309
310      <dl id="dependency-types">
311        <dt>USE</dt>
312
313        <dd>The dependency target is a Fortran module.</dd>
314
315        <dt>INTERFACE</dt>
316
317        <dd>The dependency target is a Fortran 9X interface block file.</dd>
318
319        <dt>INC</dt>
320
321        <dd>The dependency target is a Fortran INCLUDE file.</dd>
322
323        <dt>H</dt>
324
325        <dd>The dependency target is a pre-processor #include header file.</dd>
326
327        <dt>OBJ</dt>
328
329        <dd>The dependency target is a compiled binary object file.</dd>
330
331        <dt>EXE</dt>
332
333        <dd>The dependency target is an executable binary or script.</dd>
334      </dl>
335
336      <p>N.B. The following dependency targets are in the default list of
337      excluded dependencies:</p>
338
339      <dl>
340        <dt>Intrinsic Fortran modules:</dt>
341
342        <dd>
343          <ul>
344            <li>USE::ISO_C_BINDING</li>
345
346            <li>USE::IEEE_EXCEPTIONS</li>
347
348            <li>USE::IEEE_ARITHMETIC</li>
349
350            <li>USE::IEEE_FEATURES</li>
351          </ul>
352        </dd>
353
354        <dt>Intrinsic Fortran subroutines:</dt>
355
356        <dd>
357          <ul>
358            <li>OBJ::CPU_TIME</li>
359
360            <li>OBJ::GET_COMMAND</li>
361
362            <li>OBJ::GET_COMMAND_ARGUMENT</li>
363
364            <li>OBJ::GET_ENVIRONMENT_VARIABLE</li>
365
366            <li>OBJ::MOVE_ALLOC</li>
367
368            <li>OBJ::MVBITS</li>
369
370            <li>OBJ::RANDOM_NUMBER</li>
371
372            <li>OBJ::RANDOM_SEED</li>
373
374            <li>OBJ::SYSTEM_CLOCK</li>
375          </ul>
376        </dd>
377
378        <dt>Dummy declarations:</dt>
379
380        <dd>
381          <ul>
382            <li>OBJ::NONE</li>
383
384            <li>EXE::NONE</li>
385          </ul>
386        </dd>
387      </dl>
388
389      <p>Example:</p>
390      <pre>
391excl_dep  USE::YourFortranMod
392excl_dep  INTERFACE::HerFortran.interface
393excl_dep  INC::HisFortranInc.inc
394excl_dep  H::TheirHeader.h
395excl_dep  OBJ
396excl_dep  EXE
397</pre>
398    </dd>
399
400    <dt>DEP::&lt;pcks&gt;</dt>
401
402    <dd>
403      <p>This declaration is used to specify a dependency for a source file in
404      &lt;pcks&gt;. The value of this declaration must contain two fields
405      (separated by the double colon <code>::</code>). The first field denotes
406      the dependency type, and the second field is the dependency target. The
407      dependency types are the same as those for EXCL_DEP described <a href=
408      "#dependency-types">above</a>.</p>
409
410      <p>Example:</p>
411      <pre>
412dep::foo/bar.f  USE::your_fortran_mod
413dep::foo/bar.f  INTERFACE::her_fortran.interface
414dep::foo/bar.f  INC::his_fortran_inc.inc
415dep::foo/bar.f  H::their_header.h
416dep::foo/bar.f  OBJ::its_object.o
417dep::foo/egg    EXE::ham
418</pre>
419    </dd>
420
421    <dt>NO_DEP::&lt;pcks&gt;</dt>
422
423    <dd>
424      <p>This declaration is used to switch off/on dependency checking. If
425      &lt;pcks&gt; is specified in the label, the declaration applies to the
426      specified sub-package only.</p>
427
428      <p>Example:</p>
429      <pre>
430# Switch on dependency checking only for "foo"
431no_dep      true
432no_dep::foo false
433</pre>
434    </dd>
435
436    <dt>EXE_NAME::&lt;name&gt;</dt>
437
438    <dd>
439      <p>This renames the executable target of a main program source file
440      &lt;name&gt; to the specified value.</p>
441
442      <p>Example:</p>
443      <pre>
444# Rename executable target of foo.f90 from "foo.exe" to "bar"
445exe_name::foo  bar
446</pre>
447    </dd>
448
449    <dt>LIB[::&lt;pcks&gt;]</dt>
450
451    <dd>
452      <p>This declares the name of a library archive target. If &lt;pcks&gt; is
453      specified in the label, the declaration applies to the library archive
454      target for that sub-package only. If set, the name of the library archive
455      target will be named <samp>lib&lt;value&gt;.a</samp>, where &lt;value&gt;
456      is the value of the declaration. If not specified, the default is to name
457      the global library <samp>libfcm_default.a</samp>. For a library archive
458      of a sub-package, the default is to name its library after the name of
459      the sub-package.</p>
460
461      <p>Example:</p>
462      <pre>
463# Rename the top level library "libfoo.a"
464lib  foo
465
466# Rename the library for the sub-package "egg::ham"
467# from "libegg__ham.a" to "libegg-ham.a"
468lib::egg/ham  egg-ham
469</pre>
470    </dd>
471
472    <dt>PP[::&lt;pcks&gt;]</dt>
473
474    <dd>
475      <p>This declares whether a pre-processing stage is required. To switch on
476      pre-processing, set the value to <samp>true</samp>. If &lt;pcks&gt; is
477      specified in the label, the flag applies to the files within that
478      sub-package only. Otherwise, the flag affects source directories in all
479      packages. The pre-processing stage is useful if the pre-processor changes
480      the dependency and/or the argument list of the source files. The default
481      behaviour is skip the pre-processing stage for all source.</p>
482
483      <p>Example:</p>
484      <pre>
485pp::gen true  # switch on pre-processing for "gen" only
486pp      true  # switch on pre-processing globally
487</pre>
488    </dd>
489
490    <dt>SRC_TYPE::&lt;pcks&gt;</dt>
491
492    <dd>
493      <p>This declaration is used to (re-)register the file type of the
494      sub-package &lt;pcks&gt; to associate with different file types. The
495      value of the declaration is a list of type flags delimited by the double
496      colon <code>::</code>. Each type flag is used internally to describe the
497      nature of the file. For example, a Fortran free source form containing a
498      main program is registered as
499      <code>FORTRAN::FORTRAN9X::SOURCE::PROGRAM</code>. A list of type flags is
500      available <a href="#infile-ext-types">later in this annex</a>.</p>
501
502      <p>Example:</p>
503      <pre>
504src_type::foo/bar.f  FORTRAN::FORTRAN9X::SOURCE::PROGRAM
505</pre>
506    </dd>
507
508    <dt>INFILE_EXT::&lt;ext&gt;</dt>
509
510    <dd>
511      <p>This declaration is used to re-register particular file name
512      extensions &lt;ext&gt; to associate with different file types. The value
513      of the declaration has a similar format to that of SRC_TYPE declaration
514      described above. A list of type flags is available <a href=
515      "#infile-ext-types">later in this annex</a>.</p>
516
517      <p>Example:</p>
518      <pre>
519infile_ext::h90  CPP::INCLUDE
520infile_ext::inc  FORTRAN::FORTRAN9X::INCLUDE
521</pre>
522    </dd>
523
524    <dt>OUTFILE_EXT::&lt;type&gt;</dt>
525
526    <dd>
527      <p>This declaration is used to re-register the output file extension for
528      a particular &lt;type&gt; of output files. The value must be a valid file
529      extension. The following is a list of output file types in-use by the
530      build system:</p>
531
532      <dl id="outfile-ext-types">
533        <dt>OBJ</dt>
534
535        <dd>compiled object files<br />
536        [default = .o]</dd>
537
538        <dt>MOD</dt>
539
540        <dd>compiled Fortran module information files<br />
541        [default = .mod]</dd>
542
543        <dt>EXE</dt>
544
545        <dd>binary executables<br />
546        [default = .exe]</dd>
547
548        <dt>DONE</dt>
549
550        <dd><em>done</em> files for compiled source<br />
551        [default = .done]</dd>
552
553        <dt>IDONE</dt>
554
555        <dd><em>done</em> files for included source<br />
556        [default = .idone]</dd>
557
558        <dt>FLAGS</dt>
559
560        <dd><em>flags</em> files, compiler flags config<br />
561        [default = .flags]</dd>
562
563        <dt>INTERFACE</dt>
564
565        <dd>interface files for F9X standalone subroutines/functions<br />
566        [default = .interface]</dd>
567
568        <dt>LIB</dt>
569
570        <dd>archive object library<br />
571        [default = .a]</dd>
572
573        <dt>TAR</dt>
574
575        <dd>TAR archive<br />
576        [default = .tar]</dd>
577      </dl>
578
579      <p>Example:</p>
580      <pre>
581# Output F9X interface files will now have ".foo" extension
582outfile_ext::interface  .foo
583</pre>
584    </dd>
585  </dl>
586
587  <p id="tools-list">The following is a list of &lt;label&gt; fields that can
588  be used with a <code>TOOL</code> declaration. Those marked with an asterisk
589  (*) accept declarations at sub-package levels.</p>
590
591  <dl>
592    <dt>FC</dt>
593
594    <dd>The Fortran compiler.<br />
595    [default = <samp>f90</samp>]</dd>
596
597    <dt>FFLAGS *</dt>
598
599    <dd>Options used by the Fortran compiler.<br />
600    [default = ""]</dd>
601
602    <dt>FC_COMPILE</dt>
603
604    <dd>The option used by the Fortran compiler to suppress the linking
605    stage.<br />
606    [default = <samp>-c</samp>]</dd>
607
608    <dt>FC_INCLUDE</dt>
609
610    <dd>The option used by the Fortran compiler to specify the include search
611    path.<br />
612    [default = <samp>-I</samp>]</dd>
613
614    <dt>FC_MODSEARCH</dt>
615
616    <dd>The option used by the Fortran compiler to specify the search
617    path for the compiled module definition files. This option is often
618    unnecessary as it is normally covered by the include search path.<br />
619    [default = ""]</dd>
620
621    <dt>FC_DEFINE</dt>
622
623    <dd>The option used by the Fortran compiler to define a pre-processor
624    definition macro.<br />
625    [default = <samp>-D</samp>]</dd>
626
627    <dt>FC_OUTPUT</dt>
628
629    <dd>The option used by the Fortran compiler to specify the output file
630    name.<br />
631    [default = <samp>-o</samp>]</dd>
632
633    <dt>CC</dt>
634
635    <dd>The C compiler.<br />
636    [default = <samp>cc</samp>]</dd>
637
638    <dt>CFLAGS *</dt>
639
640    <dd>Options used by the C compiler.<br />
641    [default = ""]</dd>
642
643    <dt>CC_COMPILE</dt>
644
645    <dd>The option used by the C compiler to suppress the linking stage.<br />
646    [default = <samp>-c</samp>]</dd>
647
648    <dt>CC_INCLUDE</dt>
649
650    <dd>The option used by the C compiler to specify the include search
651    path.<br />
652    [default = <samp>-I</samp>]</dd>
653
654    <dt>CC_DEFINE</dt>
655
656    <dd>The option used by the C compiler to define a pre-processor definition
657    macro.<br />
658    [default = <samp>-D</samp>]</dd>
659
660    <dt>CC_OUTPUT</dt>
661
662    <dd>The option used by the C compiler to specify the output file
663    name.<br />
664    [default = <samp>-o</samp>]</dd>
665
666    <dt>LD *</dt>
667
668    <dd>Name of the linker or loader for linking object files into an
669    executable. If not set, use the compiler of the source file containing the
670    main program.<br />
671    [default = ""]</dd>
672
673    <dt>LDFLAGS *</dt>
674
675    <dd>The flags used by the linker or loader.<br />
676    [default = ""]</dd>
677
678    <dt>LD_OUTPUT</dt>
679
680    <dd>The option used by the linker or loader for the output file name (other
681    than the default <samp>a.out</samp>).<br />
682    [default = <samp>-o</samp>]</dd>
683
684    <dt>LD_LIBSEARCH</dt>
685
686    <dd>The option used by the linker or loader for specifying the search path
687    for link libraries.<br />
688    [default = <samp>-L</samp>]</dd>
689
690    <dt>LD_LIBLINK</dt>
691
692    <dd>The option used by the linker or loader command for linking with a
693    library.<br />
694    [default = <samp>-l</samp>]</dd>
695
696    <dt>AR</dt>
697
698    <dd>The archive command.<br />
699    [default = <samp>ar</samp>]</dd>
700
701    <dt>ARFLAGS</dt>
702
703    <dd>The options used for the archive command to create a library.<br />
704    [default = <samp>rs</samp>]</dd>
705
706    <dt>FPP</dt>
707
708    <dd>The Fortran pre-processor command.<br />
709    [default = <samp>cpp</samp>]</dd>
710
711    <dt>FPPKEYS *</dt>
712
713    <dd>The Fortran pre-processor will pre-define each word in this setting as
714    a macro.<br />
715    [default = ""]</dd>
716
717    <dt>FPPFLAGS *</dt>
718
719    <dd>The options used by the Fortran pre-processor.<br />
720    [default = <samp>-P -traditional</samp>]</dd>
721
722    <dt>FPP_DEFINE</dt>
723
724    <dd>The option used by the Fortran pre-processor to define a macro.<br />
725    [default = <samp>-D</samp>]</dd>
726
727    <dt>FPP_INCLUDE</dt>
728
729    <dd>The option used by the Fortran pre-processor to specify the include
730    search path.<br />
731    [default = <samp>-I</samp>]</dd>
732
733    <dt>CPP</dt>
734
735    <dd>The C pre-processor command.<br />
736    [default = <samp>cpp</samp>]</dd>
737
738    <dt>CPPKEYS *</dt>
739
740    <dd>The C pre-processor will pre-define each word in this setting as a
741    macro.<br />
742    [default = ""]</dd>
743
744    <dt>CPPFLAGS *</dt>
745
746    <dd>The options used by the C pre-processor.<br />
747    [default = <samp>-C</samp>]</dd>
748
749    <dt>CPP_DEFINE</dt>
750
751    <dd>The option used by the C pre-processor to define a macro.<br />
752    [default = <samp>-D</samp>]</dd>
753
754    <dt>CPP_INCLUDE</dt>
755
756    <dd>The option used by the C pre-processor to specify the include search
757    path.<br />
758    [default = <samp>-I</samp>]</dd>
759
760    <dt>MAKE</dt>
761
762    <dd>The <code>make</code> command.<br />
763    [default = <samp>make</samp>]</dd>
764
765    <dt>MAKEFLAGS</dt>
766
767    <dd>The options used by the <code>make</code> command.<br />
768    [default = ""]</dd>
769
770    <dt>MAKE_SILENT</dt>
771
772    <dd>The option used by the <code>make</code> command to specify silent
773    operation.<br />
774    [default = <samp>-s</samp>]</dd>
775
776    <dt>MAKE_JOB</dt>
777
778    <dd>The option used by the <code>make</code> command to specify the number
779    jobs to run simultaneously.<br />
780    [default = <samp>-j</samp>]</dd>
781
782    <dt>GENINTERFACE *</dt>
783
784    <dd>The command/method to extract the calling interfaces of top level
785    subroutines and functions in a Fortran 9X source. Supported values are
786    <samp>f90aib</samp> and <samp>none</samp> (to switch off interface
787    generation). If not specified, the system will use its own internal logic.
788    <br />
789    [default = (not specified)]</dd>
790
791    <dt>INTERFACE *</dt>
792
793    <dd>Generate Fortran 9X interface files with root names according to either
794    the root name of the source <samp>file</samp> or the name of the
795    <samp>program</samp> unit.<br />
796    [default = <samp>file</samp>]</dd>
797  </dl>
798
799  <p id="infile-ext-types">The following is a list of type flags that are
800  currently in-use (or <dfn>* reserved</dfn>) by the build system for TYPE and
801  INFILE_EXT declarations:</p>
802
803  <dl>
804    <dt>SOURCE</dt>
805
806    <dd>a source file containing program code of a supported language
807    (currently Fortran, FPP, C and CPP).</dd>
808
809    <dt>INCLUDE</dt>
810
811    <dd>an include file containing program code of a supported language
812    (currently Fortran, FPP, C and CPP).</dd>
813
814    <dt>FORTRAN</dt>
815
816    <dd>a file containing Fortran code.</dd>
817
818    <dt>FORTRAN9X</dt>
819
820    <dd>a file containing the Fortran free source form. This word must be used
821    in conjunction with the word <code>FORTRAN</code>.</dd>
822
823    <dt>FPP</dt>
824
825    <dd>a file containing Fortran code requiring pre-processing.</dd>
826
827    <dt>FPP9X</dt>
828
829    <dd>a file containing Fortran free source form requiring pre-processing.
830    This word must be used in conjunction with the word <code>FPP</code>.</dd>
831
832    <dt>C</dt>
833
834    <dd>a file containing C code.</dd>
835
836    <dt>CPP</dt>
837
838    <dd>a file containing CPP include header.</dd>
839
840    <dt>INTERFACE</dt>
841
842    <dd>a file containing a Fortran 9X interface block.</dd>
843
844    <dt>PROGRAM</dt>
845
846    <dd>a file containing a main program.</dd>
847
848    <dt>MODULE</dt>
849
850    <dd>a file containing a Fortran 9X module.</dd>
851
852    <dt>BINARY</dt>
853
854    <dd>a binary file.</dd>
855
856    <dt>EXE</dt>
857
858    <dd>an executable file. This word must be used in conjunction with the word
859    <code>BINARY</code>.</dd>
860
861    <dt>LIB</dt>
862
863    <dd>an archive library. This word must be used in conjunction with the word
864    <code>BINARY</code>.</dd>
865
866    <dt>SCRIPT</dt>
867
868    <dd>a file containing source code of a scripting language.</dd>
869
870    <dt>PVWAVE</dt>
871
872    <dd>a file containing executable PVWAVE scripts. This word must be used in
873    conjunction with the word <code>SCRIPT</code>.</dd>
874
875    <dt>SQL</dt>
876
877    <dd>a file containing SQL scripts. This word must be used in conjunction
878    with the word <code>SCRIPT</code>.</dd>
879
880    <dt>GENLIST</dt>
881
882    <dd>a GEN List file.</dd>
883
884    <dt>OBJ</dt>
885
886    <dd><dfn>(* reserved)</dfn> an object file. This word must be used in
887    conjunction with the word <code>BINARY</code>.</dd>
888
889    <dt>SHELL</dt>
890
891    <dd><dfn>(* reserved)</dfn> a file containing executable shell scripts.
892    This word must be used in conjunction with the word
893    <code>SCRIPT</code>.</dd>
894
895    <dt>PERL</dt>
896
897    <dd><dfn>(* reserved)</dfn> a file containing executable Perl scripts. This
898    word must be used in conjunction with the word <code>SCRIPT</code>.</dd>
899
900    <dt>PYTHON</dt>
901
902    <dd><dfn>(* reserved)</dfn> a file containing executable Python scripts.
903    This word must be used in conjunction with the word
904    <code>SCRIPT</code>.</dd>
905
906    <dt>TCL</dt>
907
908    <dd><dfn>(* reserved)</dfn> a file containing executable TCL scripts. This
909    word must be used in conjunction with the word <code>SCRIPT</code>.</dd>
910  </dl>
911
912  </div>
913  </div>
914  </div>
915
916  <hr/>
917  <div class="container-fluid text-center">
918    <div class="row"><div class="col-md-12">
919    <address><small>
920      &copy; British Crown Copyright 2006-16
921      <a href="http://www.metoffice.gov.uk">Met Office</a>.
922      See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br />
923      This document is released under the British <a href=
924      "http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel=
925      "license">Open Government Licence</a>.<br />
926    </small></address>
927    </div></div>
928  </div>
929
930  <script type="text/javascript" src="../etc/jquery.min.js"></script>
931  <script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script>
932  <script type="text/javascript" src="../etc/fcm.js"></script>
933  <script type="text/javascript" src="../etc/fcm-version.js"></script>
934</body>
935</html>
Note: See TracBrowser for help on using the repository browser.