1 | <!DOCTYPE html> |
---|
2 | <html> |
---|
3 | <head> |
---|
4 | <title>FCM: User Guide: Annex: FCM Configuration File</title> |
---|
5 | <meta name="author" content="FCM team" /> |
---|
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
---|
7 | <link rel="icon" href="../etc/fcm-icon.png" type="image/png" /> |
---|
8 | <link rel="shortcut icon" href="../etc/fcm-icon.png" type="image/png" /> |
---|
9 | <link href="../etc/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" /> |
---|
10 | <link href="../etc/fcm.css" rel="stylesheet" media="screen" /> |
---|
11 | </head> |
---|
12 | <body> |
---|
13 | <div class="navbar navbar-inverse"> |
---|
14 | <div class="container-fluid"> |
---|
15 | <div class="navbar-header"> |
---|
16 | <a class="navbar-brand" href=".."><span class="fcm-version">FCM</span></a> |
---|
17 | </div> |
---|
18 | <div class="collapse navbar-collapse"> |
---|
19 | <ul class="nav navbar-nav"> |
---|
20 | <li><a href="../installation/">Installation</a></li> |
---|
21 | |
---|
22 | <li><a class="active" href="#">User Guide</a></li> |
---|
23 | </ul> |
---|
24 | </div> |
---|
25 | </div> |
---|
26 | </div> |
---|
27 | |
---|
28 | <div class="page-header"> |
---|
29 | <div class="fcm-page-content pull-right well well-sm"></div> |
---|
30 | <h1>FCM: User Guide: Annex: FCM Configuration File</h1> |
---|
31 | </div> |
---|
32 | |
---|
33 | <div class="container"> |
---|
34 | <div class="row"> |
---|
35 | <div class="col-md-12"> |
---|
36 | |
---|
37 | <h2 id="syntax">Syntax</h2> |
---|
38 | |
---|
39 | <h3 id="syntax.comment">Syntax: comment</h3> |
---|
40 | |
---|
41 | <p>An empty line, a line with only space characters and a line beginning with |
---|
42 | a <kbd>#</kbd> character is a comment line. For example:</p> |
---|
43 | <pre> |
---|
44 | # This is a comment. |
---|
45 | # This is also a comment. |
---|
46 | </pre> |
---|
47 | |
---|
48 | <p>Also, if a line contains a space character followed by a <kbd>#</kbd> |
---|
49 | character then this, and any following characters, are treated as an end of |
---|
50 | line comment and are ignored.</p> |
---|
51 | |
---|
52 | <h3 id="syntax.declaration">Syntax: declaration</h3> |
---|
53 | |
---|
54 | <p>The general syntax of a declaration consists of a label, a set of |
---|
55 | modifiers, a list of name-spaces, and a value:</p> |
---|
56 | <pre> |
---|
57 | label{mod:mod-value}[ns] = value |
---|
58 | label{mod:mod-value} = value |
---|
59 | label[ns] = value |
---|
60 | label = value |
---|
61 | label = value\ |
---|
62 | value # "value value" |
---|
63 | label = value\ |
---|
64 | \value # "valuevalue" |
---|
65 | </pre> |
---|
66 | |
---|
67 | <p>The label is compulsory. It defines the declaration, and may have one or |
---|
68 | more characters in the alpha-numeric, the underscore, the minus sign and the |
---|
69 | full stop. The label cannot be substituted with a variable.</p> |
---|
70 | |
---|
71 | <p>The modifier is an optional part of the syntax, but may be a compulsory |
---|
72 | part of some declarations. The modifiers are embedded between a pair of curly |
---|
73 | braces and must come after the label, but before the name-spaces and the |
---|
74 | equal sign. It should be a comma-separated list of colon-separated key-value |
---|
75 | pairs, (i.e. <kbd>{key1: value1, key2: value2, ...}</kbd>). The value in each |
---|
76 | modifier is optional - if a key is set without a value, its value is assumed |
---|
77 | to be 1. The contents of the modifiers can be substituted using a |
---|
78 | variable.</p> |
---|
79 | |
---|
80 | <p>The name-space is an optional part of the syntax, but may be a compulsory |
---|
81 | part of some declarations. The name-spaces are embedded between a pair of |
---|
82 | square braces and must come after the label and/or modifiers but before the |
---|
83 | equal sign. It should be a space-separated list of names. If a name contains |
---|
84 | space, the space character can be escaped using a backslash character or the |
---|
85 | name can be quoted. The contents of the name-spaces can be substituted using |
---|
86 | a variable.</p> |
---|
87 | |
---|
88 | <p>The first non-space character after the equal sign begins the value of the |
---|
89 | declaration. If there is nothing after the equal sign, the value is an empty |
---|
90 | string. The contents of the value can be substituted using a variable. |
---|
91 | Trailing space characters are ignored. The end of line can be escaped using a |
---|
92 | backslash, and the value of the declaration will continue from the next |
---|
93 | non-comment line. If the first non-space character on that line is a |
---|
94 | backslash then the line contents up to and including that backslash are |
---|
95 | ignored.</p> |
---|
96 | |
---|
97 | <h3 id="syntax.variable">Syntax: variable</h3> |
---|
98 | |
---|
99 | <p>A variable is used to substitute commonly used values in a declaration. It |
---|
100 | can refer to an environment variable or can be defined locally using the |
---|
101 | syntax:</p> |
---|
102 | <pre> |
---|
103 | $var = value # Sets "var" variable to "value" |
---|
104 | $var{?} = value # Sets "var" variable to "value" only if "var" is not defined |
---|
105 | # E.g.: |
---|
106 | $projects = foo bar baz |
---|
107 | $long_path = src/path/is/very/very/very/long |
---|
108 | $UMDIR{?} = /projects/um1 |
---|
109 | # time passes... |
---|
110 | extract.ns = $projects |
---|
111 | extract.path-excl[$projects egg ham] = doc man ${long_path}_longer |
---|
112 | build.prop{cc.defs} = foo=\$foo # escape substitution |
---|
113 | </pre> |
---|
114 | |
---|
115 | <p>The name of a variable must begin with an alphabet or an underscore and |
---|
116 | followed by 0 or more alpha-numeric or underscore characters, (i.e. it must |
---|
117 | match this regular expression: <var>^[A-Za-z_][A-Za-z0-9_]*$</var>).</p> |
---|
118 | |
---|
119 | <p>Locally defined variables only apply in the context of the configuration |
---|
120 | file and are not passed down, for instance, to the compiler. If there is an |
---|
121 | environment variable with the same identifier, its value is normally |
---|
122 | overridden (within the context of the configuration file) by any local |
---|
123 | setting. However, if a <kbd>?</kbd> modifier is given, it assigns the value |
---|
124 | to the variable only if the variable is not already defined (either as an |
---|
125 | environment variable or locally). Substitution can be escaped using a |
---|
126 | backslash character in front of the dollar sign. Any attempt to reference an |
---|
127 | undefined variable will trigger an exception.</p> |
---|
128 | |
---|
129 | <p>Note: <var>$HERE</var> is a reserved variable to indicate the parent |
---|
130 | directory of the current configuration file. (The system ignores the $HERE |
---|
131 | environment variable, if there is one.) Any attempt to assign a value to |
---|
132 | <var>$HERE</var> will trigger an exception.</p> |
---|
133 | |
---|
134 | <h3 id="syntax.include">Syntax: include</h3> |
---|
135 | |
---|
136 | <p>An <code>include</code> declaration specifies the logical locations of a |
---|
137 | list of configuration files, where contents are to be included inline:</p> |
---|
138 | <pre> |
---|
139 | include{type:type} = location ... |
---|
140 | # E.g.: |
---|
141 | include = fcm:foo/path/to/config/file |
---|
142 | include = svn://server/path/to/config/file@1234 |
---|
143 | include{type:svn} = http://server/path/to/config/file |
---|
144 | include = /path/to/config/file $HERE/another-config-file |
---|
145 | include = $HERE/another-config-file |
---|
146 | include = ~/path/to/config/file ~fred/path/to/config/file |
---|
147 | </pre> |
---|
148 | |
---|
149 | <p>If the value of an <code>include</code> declaration is a relative path, |
---|
150 | the system will search the directory containing the current configuration |
---|
151 | file for the include file. More include search paths can be specified using |
---|
152 | the <code>include-path</code> declaration. E.g.:</p> |
---|
153 | |
---|
154 | <pre> |
---|
155 | # Define or replace include search paths |
---|
156 | include-path=/path/to/some/cfg /path/to/more/cfg |
---|
157 | # Append to include search paths |
---|
158 | include-path{+}=host2:/path/to/cfg |
---|
159 | include-path{type:svn,+}=https://host1/path/to/cfg |
---|
160 | # ... Include files can now be relative paths |
---|
161 | include=foo.cfg bar.cfg |
---|
162 | </pre> |
---|
163 | |
---|
164 | <p>Some commands, e.g. <code>fcm make</code>, accept one or more |
---|
165 | <code>--config-file-path=PATH</code> command line option, which can be used |
---|
166 | to pre-define the include search paths when they read their configuration |
---|
167 | files.</p> |
---|
168 | |
---|
169 | <p>Currently, the location can be a path in the file system, a Subversion URL, |
---|
170 | a FCM keyword pointing to a Subversion URL, or a location in the file system |
---|
171 | of a remote host accessible via passphrase-less SSH. The system will attempt |
---|
172 | to make an intelligent guess of the location type. To allow for future |
---|
173 | expansion, both the <code>include</code> and the <code>include-path</code> |
---|
174 | declarations accept a <var>type:TYPE</var> modifier (where TYPE can currently |
---|
175 | be <samp>fs</samp> for a file system path or <samp>svn</samp> for a Subversion |
---|
176 | location) to allow the location type to be defined where it is ambiguous.</p> |
---|
177 | |
---|
178 | <h2 id="keyword">FCM Keyword Configuration</h2> |
---|
179 | |
---|
180 | <p>The keyword configuration files are mainly used to define FCM location |
---|
181 | keywords and related settings. The <code>fcm</code> command searches for |
---|
182 | keyword configuration files from the following locations:</p> |
---|
183 | |
---|
184 | <ol> |
---|
185 | <li><dfn>(Deprecated)</dfn> <samp>$HOME/.fcm</samp> - expects FCM 1 |
---|
186 | configuration file format. See <a href="annex_fcm_cfg.html">Annex: |
---|
187 | Declarations in FCM 1 central/user configuration file</a> for detail.</li> |
---|
188 | |
---|
189 | <li><samp>$FCM/etc/fcm/keyword.cfg</samp> where <var>$FCM/bin/</var> is the |
---|
190 | path at which <code>fcm</code> is installed.</li> |
---|
191 | |
---|
192 | <li><samp>$HOME/.metomi/fcm/keyword.cfg</samp>.</li> |
---|
193 | </ol> |
---|
194 | |
---|
195 | <p>The following are declarations recognised by the keyword configuration |
---|
196 | files:</p> |
---|
197 | |
---|
198 | <dl> |
---|
199 | <dt id="keyword.location">location</dt> |
---|
200 | |
---|
201 | <dd> |
---|
202 | <p><dfn>description</dfn>: Associates a namespace with a location, and |
---|
203 | allows the use of <samp>fcm:namespace</samp> as a substitute of the |
---|
204 | location.</p> |
---|
205 | |
---|
206 | <p><dfn>modifier</dfn>: <var>primary</var>: Optional. If specified, the |
---|
207 | location is a primary location, i.e. the system will create the |
---|
208 | <samp>_tr</samp>, <samp>_br</samp>, <samp>_tg</samp>, <samp>-tr</samp>, |
---|
209 | <samp>-br</samp> and <samp>-tg</samp> keywords for this location.</p> |
---|
210 | |
---|
211 | <p><dfn>modifier</dfn>: <var>type</var>: Optional. Specifies the type of |
---|
212 | the location. The system currently supports <samp>svn</samp> for a |
---|
213 | Subversion location and <samp>fs</samp> for a file system location. If |
---|
214 | not specified, the system will make an intelligent guess based on the |
---|
215 | given value.</p> |
---|
216 | |
---|
217 | <p><dfn>namespace</dfn>: The namespace to be associated with the |
---|
218 | location.</p> |
---|
219 | |
---|
220 | <p><dfn>value</dfn>: A valid location of a type supported by the |
---|
221 | system.</p> |
---|
222 | |
---|
223 | <p><dfn>example</dfn>:</p> |
---|
224 | <pre> |
---|
225 | location{primary}[var] = svn://fcm5/VAR_svn/VAR |
---|
226 | location{primary, type:svn}[egg] = http://chicken/egg |
---|
227 | </pre> |
---|
228 | </dd> |
---|
229 | |
---|
230 | <dt id="keyword.revision">revision</dt> |
---|
231 | |
---|
232 | <dd> |
---|
233 | <p><dfn>description</dfn>: Associates a keyword with a revision of a |
---|
234 | location in a version control system.</p> |
---|
235 | |
---|
236 | <p><dfn>namespace</dfn>: The namespace of a location (already defined |
---|
237 | using the <code>location</code> declaration), followed by a colon and the |
---|
238 | namespace of the revision.</p> |
---|
239 | |
---|
240 | <p><dfn>value</dfn>: A valid revision of the location.</p> |
---|
241 | |
---|
242 | <p><dfn>example</dfn>:</p> |
---|
243 | <pre> |
---|
244 | revision[um:vn7.5] = 18479 |
---|
245 | revision[egg:free-range] = 1 |
---|
246 | </pre> |
---|
247 | </dd> |
---|
248 | |
---|
249 | <dt id="keyword.browser.comp-pat">browser.comp-pat</dt> |
---|
250 | |
---|
251 | <dd> |
---|
252 | <p><dfn>description</dfn>: Specifies a regular expression to capture |
---|
253 | components in the scheme-specific part of a version control system |
---|
254 | location (already defined using the <code>location{primary}</code> |
---|
255 | declaration). These components can then be used in the |
---|
256 | <code>browser.loc-tmpl</code> template string.</p> |
---|
257 | |
---|
258 | <p><dfn>namespace</dfn>: Optional. The namespace of a location. If not |
---|
259 | specified, the declaration applies globally.</p> |
---|
260 | |
---|
261 | <p><dfn>value</dfn>: A valid regular expression.</p> |
---|
262 | |
---|
263 | <p><dfn>example</dfn>:</p> |
---|
264 | <pre> |
---|
265 | browser.comp-pat = (?msx-i:\A // ([^/]+) /+ ([^/]+)_svn /*(.*) \z) # default |
---|
266 | browser.comp-pat[egg] = (?msx-i:\A//([^/]+)/(.*)\z) |
---|
267 | </pre> |
---|
268 | </dd> |
---|
269 | |
---|
270 | <dt id="keyword.browser.loc-tmpl">browser.loc-tmpl</dt> |
---|
271 | |
---|
272 | <dd> |
---|
273 | <p><dfn>description</dfn>: Specifies a template string, in which the |
---|
274 | components captured by the <code>browser.comp.pat</code> regular |
---|
275 | expression are used to fill in the numbered fields. The template should |
---|
276 | have one more field than the number of components captured by |
---|
277 | <code>browser.comp-pat</code>. The final field is used to place the |
---|
278 | revision, which is generated via the <code>browser.rev-tmpl</code>.</p> |
---|
279 | |
---|
280 | <p><dfn>namespace</dfn>: Optional. The namespace of a location. If not |
---|
281 | specified, the declaration applies globally.</p> |
---|
282 | |
---|
283 | <p><dfn>value</dfn>: A valid template.</p> |
---|
284 | |
---|
285 | <p><dfn>example</dfn>:</p> |
---|
286 | <pre> |
---|
287 | browser.loc-tmpl = http://{1}/projects/{2}/intertrac/source:/{3}{4} # default |
---|
288 | browser.loc-tmpl[egg] = http://{1}/intertrac/source:/{3}{4} |
---|
289 | </pre> |
---|
290 | </dd> |
---|
291 | |
---|
292 | <dt id="keyword.browser.rev-tmpl">browser.rev-tmpl</dt> |
---|
293 | |
---|
294 | <dd> |
---|
295 | <p><dfn>description</dfn>: Specifies a template string, which should have |
---|
296 | a single numbered field for filling in the revision number.</p> |
---|
297 | |
---|
298 | <p><dfn>namespace</dfn>: Optional. The namespace of a location. If not |
---|
299 | specified, the declaration applies globally.</p> |
---|
300 | |
---|
301 | <p><dfn>value</dfn>: A valid template.</p> |
---|
302 | |
---|
303 | <p><dfn>example</dfn>:</p> |
---|
304 | <pre> |
---|
305 | browser.rev-tmpl = @{1} # default |
---|
306 | </pre> |
---|
307 | </dd> |
---|
308 | </dl> |
---|
309 | |
---|
310 | <h2 id="external">FCM External Configuration</h2> |
---|
311 | |
---|
312 | <p>The external configuration files are used to define the name of external |
---|
313 | commands used by the FCM system. The <code>fcm</code> command searches for |
---|
314 | external configuration files from the following locations:</p> |
---|
315 | |
---|
316 | <ol> |
---|
317 | <li><samp>$FCM/etc/fcm/external.cfg</samp> where <var>$FCM/bin/</var> is |
---|
318 | the path at which <code>fcm</code> is installed.</li> |
---|
319 | |
---|
320 | <li><samp>$HOME/.metomi/fcm/external.cfg</samp>.</li> |
---|
321 | </ol> |
---|
322 | |
---|
323 | <p>The following are declarations recognised by the external configuration |
---|
324 | files:</p> |
---|
325 | |
---|
326 | <dl> |
---|
327 | <dt id="external.browser">browser</dt> |
---|
328 | |
---|
329 | <dd> |
---|
330 | <p><dfn>description</dfn>: Specifies the command to invoke the web |
---|
331 | browser. (default=<samp>firefox</samp>)</p> |
---|
332 | |
---|
333 | <p><dfn>example</dfn>:</p> |
---|
334 | <pre> |
---|
335 | browser = konqueror |
---|
336 | </pre> |
---|
337 | </dd> |
---|
338 | |
---|
339 | <dt id="external.diff3">diff3</dt> |
---|
340 | |
---|
341 | <dd> |
---|
342 | <p><dfn>description</dfn>: The shell command used by the extract system of |
---|
343 | FCM Make to perform a 3-way merge. (default=<samp>diff3</samp>)</p> |
---|
344 | |
---|
345 | <p><dfn>example</dfn>:</p> |
---|
346 | <pre> |
---|
347 | diff3 = diff3 |
---|
348 | </pre> |
---|
349 | </dd> |
---|
350 | |
---|
351 | <dt id="external.diff3.flags">diff3.flags</dt> |
---|
352 | |
---|
353 | <dd> |
---|
354 | <p><dfn>description</dfn>: The options used by the 3-way merge shell |
---|
355 | command. (default=<samp>-E -m</samp>)</p> |
---|
356 | |
---|
357 | <p><dfn>example</dfn>:</p> |
---|
358 | <pre> |
---|
359 | diff3.flags = -E -m |
---|
360 | </pre> |
---|
361 | </dd> |
---|
362 | |
---|
363 | <dt id="external.graphic-diff">graphic-diff</dt> |
---|
364 | |
---|
365 | <dd> |
---|
366 | <p><dfn>description</dfn>: Specifies the command to invoke the graphic |
---|
367 | diff tool. (default=<samp>xxdiff</samp>)</p> |
---|
368 | |
---|
369 | <p><dfn>example</dfn>:</p> |
---|
370 | <pre> |
---|
371 | graphic-diff = tkdiff |
---|
372 | </pre> |
---|
373 | </dd> |
---|
374 | |
---|
375 | <dt id="external.graphic-merge">graphic-merge</dt> |
---|
376 | |
---|
377 | <dd> |
---|
378 | <p><dfn>description</dfn>: Specifies the command to invoke the graphic |
---|
379 | merge tool. (default=<samp>xxdiff</samp>)</p> |
---|
380 | |
---|
381 | <p><dfn>example</dfn>:</p> |
---|
382 | <pre> |
---|
383 | graphic-merge = xxdiff |
---|
384 | </pre> |
---|
385 | </dd> |
---|
386 | |
---|
387 | <dt id="external.ssh">ssh</dt> |
---|
388 | |
---|
389 | <dd> |
---|
390 | <p><dfn>description</dfn>: The secure remote shell command to execute |
---|
391 | commands on a remote host. (default=<samp>ssh</samp>)</p> |
---|
392 | |
---|
393 | <p><dfn>example</dfn>:</p> |
---|
394 | <pre> |
---|
395 | ssh = ssh |
---|
396 | </pre> |
---|
397 | </dd> |
---|
398 | |
---|
399 | <dt id="external.ssh.flags">ssh.flags</dt> |
---|
400 | |
---|
401 | <dd> |
---|
402 | <p><dfn>description</dfn>: The options used by the secure shell command to |
---|
403 | execute commands on a remote host. (default=<samp>-n |
---|
404 | -oBatchMode=yes</samp>)</p> |
---|
405 | |
---|
406 | <p><dfn>example</dfn>:</p> |
---|
407 | <pre> |
---|
408 | ssh.flags = -n -oBatchMode=yes |
---|
409 | </pre> |
---|
410 | </dd> |
---|
411 | |
---|
412 | <dt id="external.rsync">rsync</dt> |
---|
413 | |
---|
414 | <dd> |
---|
415 | <p><dfn>description</dfn>: The <code>rsync</code> command. |
---|
416 | (default=<samp>rsync</samp>)</p> |
---|
417 | |
---|
418 | <p><dfn>example</dfn>:</p> |
---|
419 | <pre> |
---|
420 | rsync = rsync |
---|
421 | </pre> |
---|
422 | </dd> |
---|
423 | |
---|
424 | <dt id="external.rsync.flags">rsync.flags</dt> |
---|
425 | |
---|
426 | <dd> |
---|
427 | <p><dfn>description</dfn>: The options used by the <code>rsync</code> |
---|
428 | command. (default=<samp>-a --exclude=.* --delete-excluded --timeout=900 |
---|
429 | --rsh=ssh\ -oBatchMode=yes</samp>)</p> |
---|
430 | |
---|
431 | <p><dfn>example</dfn>:</p> |
---|
432 | <pre> |
---|
433 | rsync.flags = -a --exclude=.* --delete-excluded --timeout=900 --rsh=ssh\ -oBatchMode=yes |
---|
434 | </pre> |
---|
435 | </dd> |
---|
436 | </dl> |
---|
437 | |
---|
438 | <h2 id="make">FCM Make Configuration</h2> |
---|
439 | |
---|
440 | <p>A typical FCM make configuration consists of some top level declarations |
---|
441 | to define the make, and specific declarations for each step. The top level |
---|
442 | declarations are described below, and the specific declarations for each type |
---|
443 | of step will be described in the sub-sections to follow.</p> |
---|
444 | |
---|
445 | <p>Note:</p> |
---|
446 | |
---|
447 | <ul> |
---|
448 | <li>Unless stated otherwise, FCM make configuration declarations are |
---|
449 | non-cumulative, i.e. if more than one declarations apply to the |
---|
450 | <dfn>same</dfn> configuration, the value of the last declaration overrides |
---|
451 | those of the earlier ones. E.g.: |
---|
452 | <pre> |
---|
453 | # Sets the Fortran compiler flags for the root name-space |
---|
454 | build.prop{fc.flags} = -O3 |
---|
455 | # build.prop{fc.flags}[/] = -O3 |
---|
456 | |
---|
457 | # Sets the C/Fortran compiler flags for the "foo/bar" name-space |
---|
458 | build.prop{cc.flags, fc.flags}[foo/bar] = -g -C |
---|
459 | # build.prop{cc.flags}[foo/bar] = -g -C |
---|
460 | # build.prop{fc.flags}[/] = -O3 |
---|
461 | # build.prop{fc.flags}[foo/bar] = -g -C |
---|
462 | |
---|
463 | # Sets the Fortran compiler flags for the root and "foo/bar" name-spaces |
---|
464 | build.prop{fc.flags}[/ foo/bar] = -O2 |
---|
465 | # build.prop{cc.flags}[foo/bar] = -g -C |
---|
466 | # build.prop{fc.flags}[/] = -O2 |
---|
467 | # build.prop{fc.flags}[foo/bar] = -O2 |
---|
468 | |
---|
469 | # Sets the Fortran compiler flags for the "foo/bar" name-spaces |
---|
470 | build.prop{fc.flags}[foo/bar] = -O1 |
---|
471 | # build.prop{cc.flags}[foo/bar] = -g -C |
---|
472 | # build.prop{fc.flags}[/] = -O2 |
---|
473 | # build.prop{fc.flags}[foo/bar] = -O1 |
---|
474 | </pre> |
---|
475 | </li> |
---|
476 | |
---|
477 | <li>Unless stated otherwise, declarations are inherited.</li> |
---|
478 | |
---|
479 | <li>The default values of the property settings of each step class (e.g. |
---|
480 | <code>build.prop{fc}</code>) can be modified in: |
---|
481 | |
---|
482 | <ol> |
---|
483 | <li>The site configuration file <samp>$FCM/etc/fcm/make.cfg</samp> |
---|
484 | where <var>$FCM/bin/</var> is the path at which <code>fcm</code> is |
---|
485 | installed.</li> |
---|
486 | |
---|
487 | <li>The user configuration file |
---|
488 | <samp>$HOME/.metomi/fcm/make.cfg</samp>.</li> |
---|
489 | |
---|
490 | <li><samp>*.prop{class,*}</samp> declarations in the FCM make |
---|
491 | configuration file of the current session.</li> |
---|
492 | </ol> |
---|
493 | |
---|
494 | <p>The syntax is identical to a normal FCM make configuration file |
---|
495 | declaration except that:</p> |
---|
496 | |
---|
497 | <ul> |
---|
498 | <li>Only <samp>*.prop{*}</samp> declarations are accepted.</li> |
---|
499 | |
---|
500 | <li>The settings apply to a step class, not an individual step.</li> |
---|
501 | |
---|
502 | <li>Name-space is not allowed.</li> |
---|
503 | </ul> |
---|
504 | </li> |
---|
505 | </ul> |
---|
506 | |
---|
507 | <p>For further details, please refer to the chapter on <a href= |
---|
508 | "make.html">FCM Make</a>.</p> |
---|
509 | |
---|
510 | <dl> |
---|
511 | <dt id="make.description">description</dt> |
---|
512 | |
---|
513 | <dd> |
---|
514 | <p><dfn>description</dfn>: Specifies a description string for the current |
---|
515 | make.</p> |
---|
516 | |
---|
517 | <p><dfn>value</dfn>: A string.</p> |
---|
518 | |
---|
519 | <p><dfn>example</dfn>:</p> |
---|
520 | <pre> |
---|
521 | description = Release 2.71.82 |
---|
522 | </pre> |
---|
523 | </dd> |
---|
524 | |
---|
525 | <dt id="make.dest">dest</dt> |
---|
526 | |
---|
527 | <dd> |
---|
528 | <p><dfn>description</dfn>: Specifies the output destination of the make |
---|
529 | system. If not specified, the system assumes the output destination to be |
---|
530 | the current working directory. This setting is not inherited.</p> |
---|
531 | |
---|
532 | <p><dfn>value</dfn>: A writable directory path.</p> |
---|
533 | |
---|
534 | <p><dfn>example</dfn>:</p> |
---|
535 | <pre> |
---|
536 | dest = path |
---|
537 | # E.g.: |
---|
538 | dest = $HERE |
---|
539 | </pre> |
---|
540 | </dd> |
---|
541 | |
---|
542 | <dt id="make.name">name</dt> |
---|
543 | |
---|
544 | <dd> |
---|
545 | <p><dfn>description</dfn>: Specifies the NAME of the make, so that the |
---|
546 | command will search for <q>fcm-make<var>NAME</var>.cfg</q> instead of |
---|
547 | <q>fcm-make.cfg</q>, and will write context files in |
---|
548 | <q>.fcm-make<var>NAME</var>/</q> and log files as |
---|
549 | <q>fcm-make<var>NAME</var>.log</q>, etc.</p> |
---|
550 | |
---|
551 | <p><dfn>value</dfn>: A file name friendly string.</p> |
---|
552 | |
---|
553 | <p><dfn>example</dfn>:</p> |
---|
554 | <pre> |
---|
555 | name = -friend |
---|
556 | </pre> |
---|
557 | </dd> |
---|
558 | |
---|
559 | <dt id="make.require-version">require-version</dt> |
---|
560 | |
---|
561 | <dd> |
---|
562 | <p><dfn>description</dfn>: Specifies the minimum FCM version and |
---|
563 | optionally the maximum FCM version that can be used on the current |
---|
564 | configuration. If specified, FCM make fails immediately if its version |
---|
565 | does not meet the criteria.</p> |
---|
566 | |
---|
567 | <p><dfn>value</dfn>: The minimum version required, and optionally the |
---|
568 | maximum version required.</p> |
---|
569 | |
---|
570 | <p><dfn>example</dfn>:</p> |
---|
571 | <pre> |
---|
572 | # Requires minimum FCM release at 2016.02.0 |
---|
573 | require-version = 2016.02.0 |
---|
574 | # Requires minimum FCM release at 2016.02.0, and maximum at 2038.01.0 |
---|
575 | require-version = 2016.02.0 2038.01.0 |
---|
576 | </pre> |
---|
577 | </dd> |
---|
578 | |
---|
579 | <dt id="make.steps">steps</dt> |
---|
580 | |
---|
581 | <dd> |
---|
582 | <p><dfn>description</dfn>: Specifies a list of steps for the make system |
---|
583 | to invoke. Each specified step can either be the ID of a known |
---|
584 | sub-system, i.e. <samp>extract</samp>, <samp>mirror</samp>, |
---|
585 | <samp>preprocess</samp> and <samp>build</samp>, or an ID defined using |
---|
586 | the <code>step.class</code> declaration. (See below.)</p> |
---|
587 | |
---|
588 | <p><dfn>value</dfn>: A list of steps for the make system to invoke.</p> |
---|
589 | |
---|
590 | <p><dfn>example</dfn>:</p> |
---|
591 | <pre> |
---|
592 | steps = id-1 id-2 ... |
---|
593 | # E.g.: |
---|
594 | steps = extract mirror |
---|
595 | </pre> |
---|
596 | </dd> |
---|
597 | |
---|
598 | <dt id="make.step.class">step.class</dt> |
---|
599 | |
---|
600 | <dd> |
---|
601 | <p><dfn>description</dfn>: Defines custom step IDs. This allows built-in |
---|
602 | steps to be renamed, or re-used in multiple steps.</p> |
---|
603 | |
---|
604 | <p><dfn>namespace</dfn>: Specifies the step IDs.</p> |
---|
605 | |
---|
606 | <p><dfn>value</dfn>: An ID of a known sub-system, i.e. |
---|
607 | <samp>extract</samp>, <samp>mirror</samp>, <samp>preprocess</samp> and |
---|
608 | <samp>build</samp>.</p> |
---|
609 | |
---|
610 | <p><dfn>example</dfn>:</p> |
---|
611 | <pre> |
---|
612 | step.class[id ...] = id-of-class |
---|
613 | # E.g.: |
---|
614 | step.class[build-qxrecon build-ieee] = build |
---|
615 | </pre> |
---|
616 | </dd> |
---|
617 | |
---|
618 | <dt id="make.use">use</dt> |
---|
619 | |
---|
620 | <dd> |
---|
621 | <p><dfn>description</dfn>: Specifies inheritance locations. It is worth |
---|
622 | noting that this declaration is cumulative, i.e. a <code>use</code> |
---|
623 | declaration adds more inheritance locations rather than overrides the |
---|
624 | inheritance locations of any previous <code>use</code> declarations.</p> |
---|
625 | |
---|
626 | <p><dfn>value</dfn>: A list of paths where this make can inherit items |
---|
627 | and properties from.</p> |
---|
628 | |
---|
629 | <p><dfn>example</dfn>:</p> |
---|
630 | <pre> |
---|
631 | use = path1 path2 ... |
---|
632 | E.g.: |
---|
633 | use = /path/to/inherit |
---|
634 | </pre> |
---|
635 | </dd> |
---|
636 | </dl> |
---|
637 | |
---|
638 | <h3 id="make.extract">FCM Make Configuration: Extract</h3> |
---|
639 | |
---|
640 | <p>All declarations are prefixed with <samp>extract.*</samp>. Where |
---|
641 | appropriate, replace the leading <samp>extract</samp> with the appropriate |
---|
642 | step ID. With the exception of the <code>extract.location{diff}</code> |
---|
643 | declaration, any attempt to specify any extract declarations in an inherited |
---|
644 | extract will result in an exception.</p> |
---|
645 | |
---|
646 | <dl> |
---|
647 | <dt id="make.extract.ns">extract.ns</dt> |
---|
648 | |
---|
649 | <dd> |
---|
650 | <p><dfn>description</dfn>: Specifies a list of names of the projects to |
---|
651 | extract.</p> |
---|
652 | |
---|
653 | <p><dfn>value</dfn>: A space-delimited list of names of the projects to |
---|
654 | extract.</p> |
---|
655 | |
---|
656 | <p><dfn>example</dfn>:</p> |
---|
657 | <pre> |
---|
658 | extract.ns = gen ops um var ver |
---|
659 | </pre> |
---|
660 | </dd> |
---|
661 | |
---|
662 | <dt id="make.extract.location">extract.location</dt> |
---|
663 | |
---|
664 | <dd> |
---|
665 | <p><dfn>description</dfn>: Specifies the location of the base source tree |
---|
666 | a project. If the base source tree is not specified for a Subversion |
---|
667 | project, the system will try to use <samp>trunk@HEAD</samp>.</p> |
---|
668 | |
---|
669 | <p><dfn>modifier</dfn>: <var>type</var>: Specifies the type of the |
---|
670 | locations. The system currently supports <samp>svn</samp> for a Subversion |
---|
671 | location, <samp>ssh</samp> for a file system on a remote host accessible |
---|
672 | via SSH and RSYNC, and <samp>fs</samp> for a file system location. |
---|
673 | (default=<samp>svn</samp> if the location is recognised as a Subversion |
---|
674 | URL, <samp>ssh</samp> if the location has the form |
---|
675 | <var>[USER@]HOST:PATH</var> and <var>HOST</var> is a valid remote host, |
---|
676 | <samp>fs</samp> otherwise)</p> |
---|
677 | |
---|
678 | <p><dfn>namespace</dfn>: A space-delimited list of project IDs.</p> |
---|
679 | |
---|
680 | <p><dfn>value</dfn>: A location, which can be a full path in the file |
---|
681 | system, or a relative location of the project root.</p> |
---|
682 | |
---|
683 | <p><dfn>example</dfn>:</p> |
---|
684 | <pre> |
---|
685 | extract.location[um] = trunk@vn7.5 |
---|
686 | extract.location[gen ops var] = trunk@HEAD |
---|
687 | </pre> |
---|
688 | </dd> |
---|
689 | |
---|
690 | <dt id="make.extract.location.diff">extract.location{diff}</dt> |
---|
691 | |
---|
692 | <dd> |
---|
693 | <p><dfn>description</dfn>: Specifies the location(s) of one or more diff |
---|
694 | source trees of a project. It is OK to add more diff source trees in an |
---|
695 | inheriting extract.</p> |
---|
696 | |
---|
697 | <p><dfn>modifier</dfn>: <var>type</var>: -as above-</p> |
---|
698 | |
---|
699 | <p><dfn>namespace</dfn>: A project ID.</p> |
---|
700 | |
---|
701 | <p><dfn>value</dfn>: A space-delimited list of locations. A location can |
---|
702 | be a full path in the file system, or a relative location of the project |
---|
703 | root.</p> |
---|
704 | |
---|
705 | <p><dfn>example</dfn>:</p> |
---|
706 | <pre> |
---|
707 | extract.location{diff}[gen] = \ |
---|
708 | branches/dev/fred/r12345_678 \ |
---|
709 | branches/dev/free/r12345_678@123 |
---|
710 | </pre> |
---|
711 | </dd> |
---|
712 | |
---|
713 | <dt id="make.extract.location.primary">extract.location{primary}</dt> |
---|
714 | |
---|
715 | <dd> |
---|
716 | <p><dfn>description</dfn>: Specifies the project locations for an |
---|
717 | extract, if they are not already defined in the keyword |
---|
718 | configuration.</p> |
---|
719 | |
---|
720 | <p><dfn>modifier</dfn>: <var>type</var>: -as above-</p> |
---|
721 | |
---|
722 | <p><dfn>namespace</dfn>: A project ID.</p> |
---|
723 | |
---|
724 | <p><dfn>value</dfn>: A project location. The location can be a path in |
---|
725 | the file system, a Subversion URL or a FCM keyword pointing to a |
---|
726 | Subversion URL.</p> |
---|
727 | |
---|
728 | <p><dfn>example</dfn>:</p> |
---|
729 | <pre> |
---|
730 | extract.location{primary}[egg] = svn://server2/egg |
---|
731 | extract.location{primary,type:svn}[foo] = http://server1/foo |
---|
732 | </pre> |
---|
733 | </dd> |
---|
734 | |
---|
735 | <dt id="make.extract.path-excl">extract.path-excl / <span id= |
---|
736 | "make.extract.path-incl">extract.path-incl</span></dt> |
---|
737 | |
---|
738 | <dd> |
---|
739 | <p><dfn>description</dfn>: Specifies the paths in a project tree to |
---|
740 | exclude/include. (A path-incl takes precedence over a path-excl |
---|
741 | declaration.)</p> |
---|
742 | |
---|
743 | <p><dfn>namespace</dfn>: A space-delimited list of project IDs.</p> |
---|
744 | |
---|
745 | <p><dfn>value</dfn>: A space-delimited list of paths in a project |
---|
746 | tree.</p> |
---|
747 | |
---|
748 | <p><dfn>example</dfn>:</p> |
---|
749 | <pre> |
---|
750 | extract.path-excl[foo] = / # everything |
---|
751 | extract.path-incl[foo] = bin lib src/code |
---|
752 | </pre> |
---|
753 | </dd> |
---|
754 | |
---|
755 | <dt id="make.extract.path-root">extract.path-root</dt> |
---|
756 | |
---|
757 | <dd> |
---|
758 | <p><dfn>description</dfn>: Specifies the root paths in the source trees |
---|
759 | of the projects to be extracted. By default, the root path is the |
---|
760 | root of a source tree. If this setting is specified, the system will only |
---|
761 | extract source files under the specified root path. The system will also |
---|
762 | adjust the name-space of each source file to be relative to the specified |
---|
763 | root path. The <code>extract.path-excl</code> and |
---|
764 | <code>extract.path-incl</code> declarations will apply from the level of |
---|
765 | the specified root path.</p> |
---|
766 | |
---|
767 | <p><dfn>namespace</dfn>: A space-delimited list of project IDs.</p> |
---|
768 | |
---|
769 | <p><dfn>value</dfn>: A relative path in the project source trees.</p> |
---|
770 | |
---|
771 | <p><dfn>example</dfn>:</p> |
---|
772 | <pre> |
---|
773 | extract.path-root[gen] = src/code |
---|
774 | </pre> |
---|
775 | </dd> |
---|
776 | |
---|
777 | <dt id="make.extract.prop">extract.prop</dt> |
---|
778 | |
---|
779 | <dd> |
---|
780 | <p><dfn>description</dfn>: Sets or modifies a property.</p> |
---|
781 | |
---|
782 | <p><dfn>modifier</dfn>: <var>diff3</var>: The shell command to perform a |
---|
783 | 3-way merge. If not specified, use the <a href="#external.diff3">diff3</a> |
---|
784 | setting of the FCM external configuration.</p> |
---|
785 | |
---|
786 | <p><dfn>modifier</dfn>: <var>diff3.flags</var>: The options used by the |
---|
787 | 3-way merge shell command. If not specified, use the <a href= |
---|
788 | "#external.diff3.flags">diff3.flags</a> setting of the FCM external |
---|
789 | configuration.</p> |
---|
790 | |
---|
791 | <p><dfn>value</dfn>: The value of the property.</p> |
---|
792 | |
---|
793 | <p><dfn>example</dfn>:</p> |
---|
794 | <pre> |
---|
795 | extract.prop{diff3} = diff3 |
---|
796 | extract.prop{diff3.flags} = -E -m |
---|
797 | </pre> |
---|
798 | </dd> |
---|
799 | </dl> |
---|
800 | |
---|
801 | <h3 id="make.mirror">FCM Make Configuration: Mirror</h3> |
---|
802 | |
---|
803 | <p>All declarations are prefixed with <samp>mirror.*</samp>. Where |
---|
804 | appropriate, replace the leading <samp>mirror</samp> with the appropriate |
---|
805 | ID.</p> |
---|
806 | |
---|
807 | <dl> |
---|
808 | <dt id="make.mirror.target">mirror.target</dt> |
---|
809 | |
---|
810 | <dd> |
---|
811 | <p><dfn>description</dfn>: Specifies the mirror target. This setting is |
---|
812 | not inherited.</p> |
---|
813 | |
---|
814 | <p><dfn>value</dfn>: The mirror target.</p> |
---|
815 | |
---|
816 | <p><dfn>example</dfn>:</p> |
---|
817 | <pre> |
---|
818 | mirror.target = fred@server:/path/of/dest |
---|
819 | |
---|
820 | # Or if the current user ID is "fred" |
---|
821 | # Or if the user ID for "server" is configured under "~/.ssh/config" |
---|
822 | mirror.target = server:/path/of/dest |
---|
823 | |
---|
824 | # Or if mirroring to a path accessible only by user ID "bob" |
---|
825 | mirror.target = bob@localhost:/path/of/dest |
---|
826 | |
---|
827 | # Or if the current user ID is "fred" and local host is "server" |
---|
828 | mirror.target = /path/of/dest |
---|
829 | </pre> |
---|
830 | </dd> |
---|
831 | |
---|
832 | <dt id="make.mirror.prop">mirror.prop</dt> |
---|
833 | |
---|
834 | <dd> |
---|
835 | <p><dfn>description</dfn>: Sets or modifies a property.</p> |
---|
836 | |
---|
837 | <p><dfn>modifier</dfn>: See below.</p> |
---|
838 | |
---|
839 | <p><dfn>value</dfn>: The value of the property.</p> |
---|
840 | |
---|
841 | <p><dfn>example</dfn>:</p> |
---|
842 | <pre> |
---|
843 | mirror.prop{rsync} = cnysr |
---|
844 | </pre> |
---|
845 | </dd> |
---|
846 | </dl> |
---|
847 | |
---|
848 | <p>The following is a list of properties accepted by the |
---|
849 | <code>mirror.prop</code> declaration:</p> |
---|
850 | |
---|
851 | <dl> |
---|
852 | <dt id="make.mirror.prop.config-file.name">config-file.name</dt> |
---|
853 | |
---|
854 | <dd>The context name to be included in the generated configuration file in |
---|
855 | the mirror destination.</dd> |
---|
856 | |
---|
857 | <dt id="make.mirror.prop.config-file.steps">config-file.steps</dt> |
---|
858 | |
---|
859 | <dd>The steps to be included in the generated configuration file in the |
---|
860 | mirror destination.</dd> |
---|
861 | |
---|
862 | <dt id="make.mirror.prop.no-config-file">no-config-file</dt> |
---|
863 | |
---|
864 | <dd>If specified, do not generate a <samp>fcm-make.cfg</samp> in the mirror |
---|
865 | target.</dd> |
---|
866 | |
---|
867 | <dt id="make.mirror.prop.ssh">ssh</dt> |
---|
868 | |
---|
869 | <dd>The secure remote shell command to execute commands on a remote machine. |
---|
870 | If not specified, use the <a href= "#external.ssh">ssh</a> setting of the |
---|
871 | FCM external configuration.</dd> |
---|
872 | |
---|
873 | <dt id="make.mirror.prop.ssh.flags">ssh.flags</dt> |
---|
874 | |
---|
875 | <dd>The flags used by the remote shell command to execute commands on a |
---|
876 | remote machine. If not specified, use the <a href= |
---|
877 | "#external.ssh.flags">ssh.flags</a> setting of the FCM external |
---|
878 | configuration.</dd> |
---|
879 | |
---|
880 | <dt id="make.mirror.prop.rsync">rsync</dt> |
---|
881 | |
---|
882 | <dd>The <code>rsync</code> command. If not specified, use the <a href= |
---|
883 | "#external.rsync">rsync</a> setting of the FCM external configuration.</dd> |
---|
884 | |
---|
885 | <dt id="make.mirror.prop.rsync.flags">rsync.flags</dt> |
---|
886 | |
---|
887 | <dd>The options used by the <code>rsync</code> command. If not specified, |
---|
888 | use the <a href= "#external.rsync.flags">rsync.flags</a> setting of the FCM |
---|
889 | external configuration.</dd> |
---|
890 | </dl> |
---|
891 | |
---|
892 | <h3 id="make.build">FCM Make Configuration: Build</h3> |
---|
893 | |
---|
894 | <p>All declarations are prefixed with <samp>build.*</samp>. Where |
---|
895 | appropriate, replace the leading <samp>build</samp> with the appropriate |
---|
896 | ID.</p> |
---|
897 | |
---|
898 | <dl> |
---|
899 | <dt id="make.build.source">build.source</dt> |
---|
900 | |
---|
901 | <dd> |
---|
902 | <p><dfn>description</dfn>: Specifies one or more source files and/or |
---|
903 | directories.</p> |
---|
904 | |
---|
905 | <p><dfn>namespace</dfn>: Optional. Specifies the namespace of the |
---|
906 | specified paths.</p> |
---|
907 | |
---|
908 | <p><dfn>value</dfn>: A list of space-delimited file system paths.</p> |
---|
909 | |
---|
910 | <p><dfn>example</dfn>:</p> |
---|
911 | <pre> |
---|
912 | build.source[foo] = $HOME/foo $DATADIR/foo |
---|
913 | </pre> |
---|
914 | </dd> |
---|
915 | |
---|
916 | <dt id="make.build.ns-excl">build.ns-excl / <span id= |
---|
917 | "make.build.ns-incl">build.ns-incl</span></dt> |
---|
918 | |
---|
919 | <dd> |
---|
920 | <p><dfn>description</dfn>: Specifies the name-spaces in the source tree |
---|
921 | to exclude/include. (A <code>build.ns-incl</code> takes precedence over a |
---|
922 | <code>build.ns-excl</code> declaration.)</p> |
---|
923 | |
---|
924 | <p><dfn>value</dfn>: A list of space-delimited items. Each item is a |
---|
925 | name-space to exclude/include.</p> |
---|
926 | |
---|
927 | <p><dfn>example</dfn>:</p> |
---|
928 | <pre> |
---|
929 | build.ns-excl = / # exclude everything |
---|
930 | build.ns-incl = foo bar/baz # include items in these name-spaces |
---|
931 | </pre> |
---|
932 | </dd> |
---|
933 | |
---|
934 | <dt id="make.build.target">build.target</dt> |
---|
935 | |
---|
936 | <dd> |
---|
937 | <p><dfn>description</dfn>: Selects targets to build according to their |
---|
938 | keys, categories and tasks.</p> |
---|
939 | |
---|
940 | <p><dfn>modifier</dfn>: <samp>key</samp> (default if no modifier |
---|
941 | specified), <samp>category</samp> or <samp>task</samp></p> |
---|
942 | |
---|
943 | <p><dfn>namespace</dfn>: Not allowed if modifier is <samp>key</samp>. |
---|
944 | Optional if modifier is <samp>category</samp> or <samp>task</samp>. If |
---|
945 | specified, setting only applies to given name-spaces. Otherwise, setting |
---|
946 | applies to all name-spaces.</p> |
---|
947 | |
---|
948 | <p><dfn>value</dfn>: A list of space-delimited items (according to the |
---|
949 | modifier).</p> |
---|
950 | |
---|
951 | <p><dfn>example</dfn>:</p> |
---|
952 | <pre> |
---|
953 | build.target{category}[etc/namelists etc/configs] = etc |
---|
954 | build.target{category}[src/hello src/greet src/world] = bin lib |
---|
955 | build.target{task}[src/public] = archive install |
---|
956 | build.target = egg.sh mince.py |
---|
957 | </pre> |
---|
958 | </dd> |
---|
959 | |
---|
960 | <dt id="make.build.target-rename">build.target-rename</dt> |
---|
961 | |
---|
962 | <dd> |
---|
963 | <p><dfn>description</dfn>: Rename targets.</p> |
---|
964 | |
---|
965 | <p><dfn>value</dfn>: A list of space-delimited items. Each item should be |
---|
966 | the (automatic) key of a target, followed by a colon and its preferred |
---|
967 | key.</p> |
---|
968 | |
---|
969 | <p><dfn>example</dfn>:</p> |
---|
970 | <pre> |
---|
971 | build.target-rename = hello.exe:hello |
---|
972 | </pre> |
---|
973 | </dd> |
---|
974 | |
---|
975 | <dt id="make.build.prop">build.prop</dt> |
---|
976 | |
---|
977 | <dd> |
---|
978 | <p><dfn>description</dfn>: Sets or modifies a property.</p> |
---|
979 | |
---|
980 | <p><dfn>modifier</dfn>: The name of one (or more) property. See |
---|
981 | below.</p> |
---|
982 | |
---|
983 | <p><dfn>namespace</dfn>: Optional. A list of space-delimited namespaces to |
---|
984 | which this setting applies. The namespaces can be target names, when used |
---|
985 | with target properties (dependency properties are regarded as source |
---|
986 | properties), or the hierarchical namespaces of source files. If not |
---|
987 | specified, the setting applies to the global/root namespace. N.B. Not all |
---|
988 | build properties accept a namespace. See below for detail.</p> |
---|
989 | |
---|
990 | <p><dfn>value</dfn>: The value of the property.</p> |
---|
991 | |
---|
992 | <p><dfn>example</dfn>:</p> |
---|
993 | <pre> |
---|
994 | build.prop{fc} = gfortran |
---|
995 | build.prop{cc.flags,fc.flags} = -C -g |
---|
996 | build.prop{fc.flags}[foo/bar] = -C -g -W |
---|
997 | build.prop{fc.flags}[egg ham bacon] = -C -W |
---|
998 | build.prop{fc.flag-define} = -D%s |
---|
999 | build.prop{cc.defs,fc.defs}[gen] = LOWERCASE UNDERSCORE |
---|
1000 | build.prop{fc.libs}[myprog.exe] = netcdf grib |
---|
1001 | </pre> |
---|
1002 | </dd> |
---|
1003 | </dl> |
---|
1004 | |
---|
1005 | <p>The following is a list of properties accepted by the |
---|
1006 | <code>build.prop</code> declaration. The default value is an empty string |
---|
1007 | unless given otherwise. Properties that do not accept a namespace are marked |
---|
1008 | with an asterisk (*).</p> |
---|
1009 | |
---|
1010 | <dl> |
---|
1011 | <dt id="make.build.prop.ar">ar</dt> |
---|
1012 | |
---|
1013 | <dd>The archive command. (default=<samp>ar</samp>)</dd> |
---|
1014 | |
---|
1015 | <dt id="make.build.prop.ar.flags">ar.flags</dt> |
---|
1016 | |
---|
1017 | <dd>If a list of values is specified, the system will not inherit sources |
---|
1018 | with the name-spaces matching the specified values. If the value is a |
---|
1019 | <samp>*</samp>, the system will not inherit any sources.</dd> |
---|
1020 | <dd>The options used by the archive command. (default=<samp>rs</samp>)</dd> |
---|
1021 | |
---|
1022 | <dt id= |
---|
1023 | "make.build.prop.archive-ok-target-category">archive-ok-target-category |
---|
1024 | *</dt> |
---|
1025 | |
---|
1026 | <dd>If <code>fcm make</code> is invoked with the <code>--archive</code> |
---|
1027 | option, sub-directories in categories containing intermediate build files |
---|
1028 | will be put into TAR-GZIP files. E.g. with the default setting, |
---|
1029 | <samp>include/</samp> and <samp>o/</samp> will become |
---|
1030 | <samp>include.tar.gz</samp> and <samp>o.tar.gz</samp> respectively. |
---|
1031 | (default=<samp>include o</samp>)</dd> |
---|
1032 | |
---|
1033 | <dt id="make.build.prop.cc">cc</dt> |
---|
1034 | |
---|
1035 | <dd>The C compiler and linker. (default=<samp>gcc</samp>)</dd> |
---|
1036 | |
---|
1037 | <dt id="make.build.prop.cc.defs">cc.defs</dt> |
---|
1038 | |
---|
1039 | <dd>The C compiler will pre-define each word in this setting as a |
---|
1040 | macro.</dd> |
---|
1041 | |
---|
1042 | <dt id="make.build.prop.cc.flags">cc.flags</dt> |
---|
1043 | |
---|
1044 | <dd>The options used by the C compiler at compile time.</dd> |
---|
1045 | |
---|
1046 | <dt id="make.build.prop.cc.flags-ld">cc.flags-ld</dt> |
---|
1047 | |
---|
1048 | <dd>The options used by the C compiler at link time.</dd> |
---|
1049 | |
---|
1050 | <dt id="make.build.prop.cc.flag-compile">cc.flag-compile</dt> |
---|
1051 | |
---|
1052 | <dd>The option used by the C compiler to suppress the linking stage. |
---|
1053 | (default=<samp>-c</samp>)</dd> |
---|
1054 | |
---|
1055 | <dt id="make.build.prop.cc.flag-define">cc.flag-define</dt> |
---|
1056 | |
---|
1057 | <dd>The option used by the C compiler to define a macro. |
---|
1058 | (default=<samp>-D%s</samp>)</dd> |
---|
1059 | |
---|
1060 | <dt id="make.build.prop.cc.flag-include">cc.flag-include</dt> |
---|
1061 | |
---|
1062 | <dd>The option used by the C compiler to specify an include search |
---|
1063 | path. (default=<samp>-I%s</samp>)</dd> |
---|
1064 | |
---|
1065 | <dt id="make.build.prop.cc.flag-lib">cc.flag-lib</dt> |
---|
1066 | |
---|
1067 | <dd>The option used by the C compiler at link time to specify a |
---|
1068 | library. (default=<samp>-l%s</samp>)</dd> |
---|
1069 | |
---|
1070 | <dt id="make.build.prop.cc.flag-lib-path">cc.flag-lib-path</dt> |
---|
1071 | |
---|
1072 | <dd>The option used by the C compiler at link time to specify a library |
---|
1073 | search path. (default=<samp>-L%s</samp>)</dd> |
---|
1074 | |
---|
1075 | <dt id="make.build.prop.cc.flag-omp">cc.flag-omp</dt> |
---|
1076 | |
---|
1077 | <dd>The option used by the C compiler to switch on OpenMP.</dd> |
---|
1078 | |
---|
1079 | <dt id="make.build.prop.cc.flag-output">cc.flag-output</dt> |
---|
1080 | |
---|
1081 | <dd>The option used by the C compiler to specify the output file name. |
---|
1082 | (default=<samp>-o%s</samp>)</dd> |
---|
1083 | |
---|
1084 | <dt id="make.build.prop.cc.include-paths">cc.include-paths</dt> |
---|
1085 | |
---|
1086 | <dd>The C compiler will add each directory in this setting as an include |
---|
1087 | search path.</dd> |
---|
1088 | |
---|
1089 | <dt id="make.build.prop.cc.libs">cc.libs</dt> |
---|
1090 | |
---|
1091 | <dd>The C linker will add each item in this setting as a link |
---|
1092 | library.</dd> |
---|
1093 | |
---|
1094 | <dt id="make.build.prop.cc.lib-paths">cc.lib-paths</dt> |
---|
1095 | |
---|
1096 | <dd>The C linker will add each directory in this setting as a library |
---|
1097 | search path.</dd> |
---|
1098 | |
---|
1099 | <dt id="make.build.prop.checksum-method">checksum-method</dt> |
---|
1100 | |
---|
1101 | <dd>The checksum method to use to determine if the content of a file is |
---|
1102 | changed or not. Either MD5 or one of the SHA algorithms supported by the |
---|
1103 | Perl module <a href="http://perldoc.perl.org/Digest/SHA.html">Digest::SHA</a> |
---|
1104 | can be used. (default=<samp>md5</samp>)</dd> |
---|
1105 | |
---|
1106 | <dt id="make.build.prop.cxx">cxx</dt> |
---|
1107 | |
---|
1108 | <dd>The C++ compiler and linker. (default=<samp>g++</samp>)</dd> |
---|
1109 | |
---|
1110 | <dt id="make.build.prop.cxx.defs">cxx.defs</dt> |
---|
1111 | |
---|
1112 | <dd>The C++ compiler will pre-define each word in this setting as a |
---|
1113 | macro.</dd> |
---|
1114 | |
---|
1115 | <dt id="make.build.prop.cxx.flags">cxx.flags</dt> |
---|
1116 | |
---|
1117 | <dd>The options used by the C++ compiler at compile time.</dd> |
---|
1118 | |
---|
1119 | <dt id="make.build.prop.cxx.flags-ld">cxx.flags-ld</dt> |
---|
1120 | |
---|
1121 | <dd>The options used by the C++ compiler at link time.</dd> |
---|
1122 | |
---|
1123 | <dt id="make.build.prop.cxx.flag-compile">cxx.flag-compile</dt> |
---|
1124 | |
---|
1125 | <dd>The option used by the C++ compiler to suppress the linking stage. |
---|
1126 | (default=<samp>-c</samp>)</dd> |
---|
1127 | |
---|
1128 | <dt id="make.build.prop.cxx.flag-define">cxx.flag-define</dt> |
---|
1129 | |
---|
1130 | <dd>The option used by the C++ compiler to define a macro. |
---|
1131 | (default=<samp>-D%s</samp>)</dd> |
---|
1132 | |
---|
1133 | <dt id="make.build.prop.cxx.flag-include">cxx.flag-include</dt> |
---|
1134 | |
---|
1135 | <dd>The option used by the C++ compiler to specify an include search |
---|
1136 | path. (default=<samp>-I%s</samp>)</dd> |
---|
1137 | |
---|
1138 | <dt id="make.build.prop.cxx.flag-lib">cxx.flag-lib</dt> |
---|
1139 | |
---|
1140 | <dd>The option used by the C++ compiler at link time to specify a |
---|
1141 | library. (default=<samp>-l%s</samp>)</dd> |
---|
1142 | |
---|
1143 | <dt id="make.build.prop.cxx.flag-lib-path">cxx.flag-lib-path</dt> |
---|
1144 | |
---|
1145 | <dd>The option used by the C++ compiler at link time to specify a library |
---|
1146 | search path. (default=<samp>-L%s</samp>)</dd> |
---|
1147 | |
---|
1148 | <dt id="make.build.prop.cxx.flag-omp">cxx.flag-omp</dt> |
---|
1149 | |
---|
1150 | <dd>The option used by the C++ compiler to switch on OpenMP.</dd> |
---|
1151 | |
---|
1152 | <dt id="make.build.prop.cxx.flag-output">cxx.flag-output</dt> |
---|
1153 | |
---|
1154 | <dd>The option used by the C++ compiler to specify the output file name. |
---|
1155 | (default=<samp>-o%s</samp>)</dd> |
---|
1156 | |
---|
1157 | <dt id="make.build.prop.cxx.include-paths">cxx.include-paths</dt> |
---|
1158 | |
---|
1159 | <dd>The C++ compiler will add each directory in this setting as an include |
---|
1160 | search path.</dd> |
---|
1161 | |
---|
1162 | <dt id="make.build.prop.cxx.libs">cxx.libs</dt> |
---|
1163 | |
---|
1164 | <dd>The C++ linker will add each item in this setting as a link |
---|
1165 | library.</dd> |
---|
1166 | |
---|
1167 | <dt id="make.build.prop.cxx.lib-paths">cxx.lib-paths</dt> |
---|
1168 | |
---|
1169 | <dd>The C++ linker will add each directory in this setting as a library |
---|
1170 | search path.</dd> |
---|
1171 | |
---|
1172 | <dt id="make.build.prop.dep.bin">dep.bin</dt> |
---|
1173 | |
---|
1174 | <dd>Specifies a list of manual dependencies on external executable |
---|
1175 | commands.</dd> |
---|
1176 | |
---|
1177 | <dt id="make.build.prop.dep.f.module">dep.f.module</dt> |
---|
1178 | |
---|
1179 | <dd>Specifies a list of manual Fortran module dependencies. Note: This |
---|
1180 | modifier does not work if the name-space is specified using a target |
---|
1181 | name.</dd> |
---|
1182 | |
---|
1183 | <dt id="make.build.prop.dep.include">dep.include</dt> |
---|
1184 | |
---|
1185 | <dd>Specifies a list of manual include dependencies.</dd> |
---|
1186 | |
---|
1187 | <dt id="make.build.prop.dep.o">dep.o</dt> |
---|
1188 | |
---|
1189 | <dd>Specifies a list of manual object dependencies.</dd> |
---|
1190 | |
---|
1191 | <dt id="make.build.prop.dep.o.special">dep.o.special</dt> |
---|
1192 | |
---|
1193 | <dd>Specifies a list of manual object dependencies, which must appear on |
---|
1194 | the command line of the linker, (e.g. an object containing a Fortran |
---|
1195 | blockdata program unit).</dd> |
---|
1196 | |
---|
1197 | <dt id="make.build.prop.fc">fc</dt> |
---|
1198 | |
---|
1199 | <dd>The Fortran compiler and linker. (default=<samp>gfortran</samp>)</dd> |
---|
1200 | |
---|
1201 | <dt id="make.build.prop.fc.defs">fc.defs</dt> |
---|
1202 | |
---|
1203 | <dd>The Fortran compiler will pre-define each word in this setting as a |
---|
1204 | macro.</dd> |
---|
1205 | |
---|
1206 | <dt id="make.build.prop.fc.flags">fc.flags</dt> |
---|
1207 | |
---|
1208 | <dd>The options used by the Fortran compiler at compile time.</dd> |
---|
1209 | |
---|
1210 | <dt id="make.build.prop.fc.flags-ld">fc.flags-ld</dt> |
---|
1211 | |
---|
1212 | <dd>The options used by the Fortran compiler at link time.</dd> |
---|
1213 | |
---|
1214 | <dt id="make.build.prop.fc.flag-compile">fc.flag-compile</dt> |
---|
1215 | |
---|
1216 | <dd>The option used by the Fortran compiler to suppress the linking stage. |
---|
1217 | (default=<samp>-c</samp>)</dd> |
---|
1218 | |
---|
1219 | <dt id="make.build.prop.fc.flag-define">fc.flag-define</dt> |
---|
1220 | |
---|
1221 | <dd>The option used by the Fortran compiler to define a macro. |
---|
1222 | (default=<samp>-D%s</samp>)</dd> |
---|
1223 | |
---|
1224 | <dt id="make.build.prop.fc.flag-include">fc.flag-include</dt> |
---|
1225 | |
---|
1226 | <dd>The option used by the Fortran compiler to specify an include search |
---|
1227 | path. (default=<samp>-I%s</samp>)</dd> |
---|
1228 | |
---|
1229 | <dt id="make.build.prop.fc.flag-lib">fc.flag-lib</dt> |
---|
1230 | |
---|
1231 | <dd>The option used by the Fortran compiler at link time to specify a |
---|
1232 | library. (default=<samp>-l%s</samp>)</dd> |
---|
1233 | |
---|
1234 | <dt id="make.build.prop.fc.flag-lib-path">fc.flag-lib-path</dt> |
---|
1235 | |
---|
1236 | <dd>The option used by the Fortran compiler at link time to specify a |
---|
1237 | library search path. (default=<samp>-L%s</samp>)</dd> |
---|
1238 | |
---|
1239 | <dt id="make.build.prop.fc.flag-module">fc.flag-module</dt> |
---|
1240 | |
---|
1241 | <dd>The option used by the Fortran compiler to specify a module search |
---|
1242 | path.</dd> |
---|
1243 | |
---|
1244 | <dt id="make.build.prop.fc.flag-omp">fc.flag-omp</dt> |
---|
1245 | |
---|
1246 | <dd>The option used by the Fortran compiler to switch on OpenMP. If |
---|
1247 | specified, the build system will treat <code>USE</code> and |
---|
1248 | <code>INCLUDE</code> statements that are protected by <code>!$ </code> |
---|
1249 | sentinels as normal dependency statements.</dd> |
---|
1250 | |
---|
1251 | <dt id="make.build.prop.fc.flag-output">fc.flag-output</dt> |
---|
1252 | |
---|
1253 | <dd>The option used by the Fortran compiler to specify the output file |
---|
1254 | name. (default=<samp>-o%s</samp>)</dd> |
---|
1255 | |
---|
1256 | <dt id="make.build.prop.fc.include-paths">fc.include-paths</dt> |
---|
1257 | |
---|
1258 | <dd>The Fortran compiler will add each directory in this setting as an |
---|
1259 | include search path.</dd> |
---|
1260 | |
---|
1261 | <dt id="make.build.prop.fc.libs">fc.libs</dt> |
---|
1262 | |
---|
1263 | <dd>The Fortran linker will add each item in this setting as a link |
---|
1264 | library.</dd> |
---|
1265 | |
---|
1266 | <dt id="make.build.prop.fc.lib-paths">fc.lib-paths</dt> |
---|
1267 | |
---|
1268 | <dd>The Fortran linker will add each directory in this setting as a library |
---|
1269 | search path.</dd> |
---|
1270 | |
---|
1271 | <dt id="make.build.prop.file-ext.a">file-ext.a *</dt> |
---|
1272 | |
---|
1273 | <dd>Specifies the extension of an object archive file. |
---|
1274 | (default=<samp>.a</samp>)</dd> |
---|
1275 | |
---|
1276 | <dt id="make.build.prop.file-ext.bin">file-ext.bin *</dt> |
---|
1277 | |
---|
1278 | <dd>Specifies the extension of a binary executable file. |
---|
1279 | (default=<samp>.exe</samp>)</dd> |
---|
1280 | |
---|
1281 | <dt id="make.build.prop.file-ext.c">file-ext.c *</dt> |
---|
1282 | |
---|
1283 | <dd>Specifies the extensions of a C source file. |
---|
1284 | (default=<samp>.c .i .m .mi</samp>)</dd> |
---|
1285 | |
---|
1286 | <dt id="make.build.prop.file-ext.cxx">file-ext.cxx *</dt> |
---|
1287 | |
---|
1288 | <dd>Specifies the extensions of a C++ source file. |
---|
1289 | (default=<samp>.cc .cp .cxx .cpp .CPP .c++ .C .mm .M .mii</samp>)</dd> |
---|
1290 | |
---|
1291 | <dt id="make.build.prop.file-ext.fortran">file-ext.fortran *</dt> |
---|
1292 | |
---|
1293 | <dd>Specifies the extensions of a Fortran source file. (default=<samp>.F |
---|
1294 | .FOR .FTN .F90 .F95 .f .for .ftn .f90 .f95 .inc</samp>)</dd> |
---|
1295 | |
---|
1296 | <dt id="make.build.prop.file-ext.f90-interface">file-ext.f90-interface |
---|
1297 | *</dt> |
---|
1298 | |
---|
1299 | <dd>Specifies the extension of a Fortran interface file. |
---|
1300 | (default=<samp>.interface</samp>)</dd> |
---|
1301 | |
---|
1302 | <dt id="make.build.prop.file-ext.f90-mod">file-ext.f90-mod *</dt> |
---|
1303 | |
---|
1304 | <dd>Specifies the extension of a compiled Fortran module file. |
---|
1305 | (default=<samp>.mod</samp>)</dd> |
---|
1306 | |
---|
1307 | <dt id="make.build.prop.file-ext.h">file-ext.h *</dt> |
---|
1308 | |
---|
1309 | <dd>Specifies the extensions of a C/C++ header file. |
---|
1310 | (default=<samp>.h</samp>)</dd> |
---|
1311 | |
---|
1312 | <dt id="make.build.prop.file-ext.o">file-ext.o *</dt> |
---|
1313 | |
---|
1314 | <dd>Specifies the extension of a compiled object file. |
---|
1315 | (default=<samp>.o</samp>)</dd> |
---|
1316 | |
---|
1317 | <dt id="make.build.prop.file-ext.script">file-ext.script *</dt> |
---|
1318 | |
---|
1319 | <dd>Specifies the extensions of script files.</dd> |
---|
1320 | |
---|
1321 | <dt id="make.build.prop.file-name-option.f90-mod">file-name-option.f90-mod |
---|
1322 | *</dt> |
---|
1323 | |
---|
1324 | <dd>Specifies other options for naming a compiled Fortran module file. |
---|
1325 | Accepts <samp>case=upper</samp> or <samp>case=lower</samp> (default).</dd> |
---|
1326 | |
---|
1327 | <dt id="make.build.prop.file-pat.script">file-pat.script *</dt> |
---|
1328 | |
---|
1329 | <dd>Specifies a regular expression for matching the name of script |
---|
1330 | files.</dd> |
---|
1331 | |
---|
1332 | <dt id="make.build.prop.ignore-missing-dep-ns">ignore-missing-dep-ns *</dt> |
---|
1333 | |
---|
1334 | <dd>Specifies a list of source name-spaces, in which targets can ignore |
---|
1335 | missing dependencies.</dd> |
---|
1336 | |
---|
1337 | <dt id="make.build.prop.keep-lib-o">keep-lib-o</dt> |
---|
1338 | |
---|
1339 | <dd>Relevant when linking a binary executable and <a href= |
---|
1340 | "#make.build.prop.link-without-ar">link-without-ar</a> is not set to |
---|
1341 | <kbd>true</kbd>. If <kbd>true</kbd>, create and keep the dependent object |
---|
1342 | library as <samp>lib/libNAME.a</samp>, where <var>NAME</var> is the root |
---|
1343 | name of the executable. In the absence of this setting, the behaviour is to |
---|
1344 | create the dependent object library in a temporary directory, which is |
---|
1345 | removed after the linker command is completed.</dd> |
---|
1346 | |
---|
1347 | <dt id="make.build.prop.ld">ld</dt> |
---|
1348 | |
---|
1349 | <dd>The linker command. If not specified, use the compiler of the source |
---|
1350 | file.</dd> |
---|
1351 | |
---|
1352 | <dt id="make.build.prop.link-without-ar">link-without-ar</dt> |
---|
1353 | |
---|
1354 | <dd>Relevant when linking a binary executable. If <kbd>true</kbd>, do not |
---|
1355 | create the dependent object library when linking. Instead, locations of the |
---|
1356 | dependent objects will be specified on the command line of the linker. In |
---|
1357 | the absence of this setting, the behaviour is to create the dependent object |
---|
1358 | library in a temporary directory, with the location of the object library |
---|
1359 | specified using the relevant options of the linker.</dd> |
---|
1360 | |
---|
1361 | <dt id="make.build.prop.no-dep.bin">no-dep.bin</dt> |
---|
1362 | |
---|
1363 | <dd>Switches off a list of automatic dependencies on external executable. |
---|
1364 | If the value is a <samp>*</samp>, switches off all automatic external |
---|
1365 | executable dependencies.</dd> |
---|
1366 | |
---|
1367 | <dt id="make.build.prop.no-dep.f.module">no-dep.f.module</dt> |
---|
1368 | |
---|
1369 | <dd>Switches off a list of automatic Fortran module dependencies. If the |
---|
1370 | value is a <samp>*</samp>, switches off all automatic Fortran module |
---|
1371 | dependencies. Note: This modifier does not work if the name-space is |
---|
1372 | specified using a target name.</dd> |
---|
1373 | |
---|
1374 | <dt id="make.build.prop.no-dep.include">no-dep.include</dt> |
---|
1375 | |
---|
1376 | <dd>Switches off a list of automatic include dependencies. If the value is |
---|
1377 | a <samp>*</samp>, switches off all automatic include dependencies.</dd> |
---|
1378 | |
---|
1379 | <dt id="make.build.prop.no-dep.o">no-dep.o</dt> |
---|
1380 | |
---|
1381 | <dd>Switches off a list of automatic object dependencies. If the value is a |
---|
1382 | <samp>*</samp>, switches off all automatic object dependencies.</dd> |
---|
1383 | |
---|
1384 | <dt id="make.build.prop.no-inherit-source">no-inherit-source *</dt> |
---|
1385 | |
---|
1386 | <dd>If a list of values is specified, the system will not inherit sources |
---|
1387 | with the name-spaces matching the specified values. If the value is a |
---|
1388 | <samp>*</samp>, the system will not inherit any sources.</dd> |
---|
1389 | |
---|
1390 | <dt id="make.build.prop.no-inherit-target-category"> |
---|
1391 | no-inherit-target-category *</dt> |
---|
1392 | |
---|
1393 | <dd>If a list of values is specified, the system will not inherit a target |
---|
1394 | in a category matching a specified value. (default=<samp>bin etc |
---|
1395 | lib</samp>)</dd> |
---|
1396 | |
---|
1397 | <dt id="make.build.prop.no-step-source">no-step-source *</dt> |
---|
1398 | |
---|
1399 | <dd>If a list of make steps is specified, the system will not search for |
---|
1400 | source files from the specified make steps.</dd> |
---|
1401 | |
---|
1402 | <dt id="make.build.prop.ns-dep.o">ns-dep.o</dt> |
---|
1403 | |
---|
1404 | <dd>Specifies a list of link-time object dependencies on all objects in the |
---|
1405 | list of name-spaces in the value.</dd> |
---|
1406 | </dl> |
---|
1407 | |
---|
1408 | <h3 id="make.preprocess">FCM Make Configuration: Preprocess</h3> |
---|
1409 | |
---|
1410 | <p>The preprocess system uses the same declarations as the build system (see |
---|
1411 | <a href="#make.build">FCM Make Configuration: Build</a>), although their |
---|
1412 | prefixes should be replaced with <samp>preprocess.*</samp> or the appropriate |
---|
1413 | step ID. The following is a list of modifiers accepted by the |
---|
1414 | <code>preprocess.prop</code> declaration. The default value of a property is |
---|
1415 | an empty string unless given otherwise. Properties that do not accept a |
---|
1416 | namespace are marked with an asterisk (*).</p> |
---|
1417 | |
---|
1418 | <dl> |
---|
1419 | <dt id="make.preprocess.prop.cpp">cpp</dt> |
---|
1420 | |
---|
1421 | <dd>The command of the C/C++ pre-processor. (default=<samp>cpp</samp>)</dd> |
---|
1422 | |
---|
1423 | <dt id="make.preprocess.prop.cpp.defs">cpp.defs</dt> |
---|
1424 | |
---|
1425 | <dd>The C/C++ pre-processor will pre-define each word in this setting as a |
---|
1426 | macro.</dd> |
---|
1427 | |
---|
1428 | <dt id="make.preprocess.prop.cpp.flags">cpp.flags</dt> |
---|
1429 | |
---|
1430 | <dd>The options used by the C/C++ pre-processor.</dd> |
---|
1431 | |
---|
1432 | <dt id="make.preprocess.prop.cpp.flag-define">cpp.flag-define</dt> |
---|
1433 | |
---|
1434 | <dd>The option used by the C/C++ pre-processor to define a macro. |
---|
1435 | (default=<samp>-D%s</samp>)</dd> |
---|
1436 | |
---|
1437 | <dt id="make.preprocess.prop.cpp.flag-include">cpp.flag-include</dt> |
---|
1438 | |
---|
1439 | <dd>The option used by the C/C++ pre-processor to specify the include |
---|
1440 | search path. (default=<samp>-I%s</samp>)</dd> |
---|
1441 | |
---|
1442 | <dt id="make.preprocess.prop.cpp.include-paths">cpp.include-paths</dt> |
---|
1443 | |
---|
1444 | <dd>The C/C++ preprocessor will add each directory in this setting as an |
---|
1445 | include search path.</dd> |
---|
1446 | |
---|
1447 | <dt id="make.preprocess.prop.dep.include">dep.include</dt> |
---|
1448 | |
---|
1449 | <dd>Specifies a list of manual include dependencies.</dd> |
---|
1450 | |
---|
1451 | <dt id="make.preprocess.prop.file-ext.cpp">file-ext.cpp *</dt> |
---|
1452 | |
---|
1453 | <dd>Specifies the extensions of C/C++ source file. |
---|
1454 | (default=<samp>.c .m .cc .cp .cxx .cpp .CPP .c++ .C .mm .M</samp>)</dd> |
---|
1455 | |
---|
1456 | <dt id="make.preprocess.prop.file-ext.fpp">file-ext.fpp *</dt> |
---|
1457 | |
---|
1458 | <dd>Specifies the extensions of Fortran source file requiring |
---|
1459 | preprocessing. (default=<samp>.F .FOR .FTN .F90 .F95</samp>)</dd> |
---|
1460 | |
---|
1461 | <dt id="make.preprocess.prop.file-ext.h">file-ext.h *</dt> |
---|
1462 | |
---|
1463 | <dd>Specifies the extensions of a C/C++ header file. |
---|
1464 | (default=<samp>.h</samp>)</dd> |
---|
1465 | |
---|
1466 | <dt id="make.preprocess.prop.fpp">fpp</dt> |
---|
1467 | |
---|
1468 | <dd>The command of the Fortran pre-processor. |
---|
1469 | (default=<samp>cpp</samp>)</dd> |
---|
1470 | |
---|
1471 | <dt id="make.preprocess.prop.fpp.defs">fpp.defs</dt> |
---|
1472 | |
---|
1473 | <dd>The Fortran pre-processor will pre-define each word in this setting as |
---|
1474 | a macro.</dd> |
---|
1475 | |
---|
1476 | <dt id="make.preprocess.prop.fpp.flags">fpp.flags</dt> |
---|
1477 | |
---|
1478 | <dd>The options used by the Fortran pre-processor. (default=<samp>-P |
---|
1479 | -traditional</samp>)</dd> |
---|
1480 | |
---|
1481 | <dt id="make.preprocess.prop.fpp.flag-define">fpp.flag-define</dt> |
---|
1482 | |
---|
1483 | <dd>The option used by the Fortran pre-processor to define a macro. |
---|
1484 | (default=<samp>-D%s</samp>)</dd> |
---|
1485 | |
---|
1486 | <dt id="make.preprocess.prop.fpp.flag-include">fpp.flag-include</dt> |
---|
1487 | |
---|
1488 | <dd>The option used by the Fortran pre-processor to specify the include |
---|
1489 | search path. (default=<samp>-I%s</samp>)</dd> |
---|
1490 | |
---|
1491 | <dt id="make.preprocess.prop.fpp.include-paths">fpp.include-paths</dt> |
---|
1492 | |
---|
1493 | <dd>The Fortran preprocessor will add each directory in this setting as an |
---|
1494 | include search path.</dd> |
---|
1495 | |
---|
1496 | <dt id="make.preprocess.prop.no-dep.include">no-dep.include</dt> |
---|
1497 | |
---|
1498 | <dd>Switches off a list of automatic include dependencies. If the value is |
---|
1499 | a <samp>*</samp>, it switches off all automatic include dependencies.</dd> |
---|
1500 | |
---|
1501 | <dt id="make.preprocess.prop.no-inherit-source">no-inherit-source *</dt> |
---|
1502 | |
---|
1503 | <dd>Same as the build property of the same name.</dd> |
---|
1504 | |
---|
1505 | <dt id="make.preprocess.prop.no-inherit-target-category"> |
---|
1506 | no-inherit-target-category *</dt> |
---|
1507 | |
---|
1508 | <dd>Same as the build property of the same name.</dd> |
---|
1509 | |
---|
1510 | <dt id="make.preprocess.prop.no-step-source">no-step-source *</dt> |
---|
1511 | |
---|
1512 | <dd>Same as the build property of the same name.</dd> |
---|
1513 | </dl> |
---|
1514 | |
---|
1515 | </div> |
---|
1516 | </div> |
---|
1517 | </div> |
---|
1518 | |
---|
1519 | <hr/> |
---|
1520 | <div class="container-fluid text-center"> |
---|
1521 | <div class="row"><div class="col-md-12"> |
---|
1522 | <address><small> |
---|
1523 | Copyright © 2006-2021 British Crown (Met Office) & Contributors. |
---|
1524 | <a href="http://www.metoffice.gov.uk">Met Office</a>. |
---|
1525 | See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br /> |
---|
1526 | This document is released under the British <a href= |
---|
1527 | "http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel= |
---|
1528 | "license">Open Government Licence</a>.<br /> |
---|
1529 | </small></address> |
---|
1530 | </div></div> |
---|
1531 | </div> |
---|
1532 | |
---|
1533 | <script type="text/javascript" src="../etc/jquery.min.js"></script> |
---|
1534 | <script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script> |
---|
1535 | <script type="text/javascript" src="../etc/fcm.js"></script> |
---|
1536 | <script type="text/javascript" src="../etc/fcm-version.js"></script> |
---|
1537 | </body> |
---|
1538 | </html> |
---|