This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
No reference to $Id: in generated files
[metaconfig.git] / README_U
1 Line    Description
2 ======= =======================================================================
3
4 ?C:     Comments for #defines
5
6 ?D:     Set default value for variable
7
8         ?D:osname=''
9
10 ?F:     Defines what files are created by this module
11
12 ?H:     Defines the part to be included in the generated config_h.SH
13
14         To get #ifdefs in config_h.SH, you'll need strange constructs like
15
16         ?H:?%<:@if USE_SITECUSTOMIZE
17         ?H:?%<:#ifndef USE_SITECUSTOMIZE
18         ?H:?%<:#$usesitecustomize     USE_SITECUSTOMIZE               /**/
19         ?H:?%<:#endif
20         ?H:?%<:@end
21
22 ?I:     Include
23
24 ?INIT:  ?
25
26 ?L:     Library
27
28 ?LINT:  tell what is to be expected extern and what is changed
29
30         ?LINT:define fieldn
31         ?LINT:extern CONFIG_H
32         ?LINT:change CONFIG_H
33         ?LINT:use PERL_CONFIG_SH
34
35 ?M:     Magic
36
37 ?MAKE:  symbol list: dependency list [+optional]
38
39         This is the first dependency line. The first "symbol list"
40         should list all the symbols built by this unit (i.e. whose
41         value is computed by the shell section of the unit). Symbols
42         should be space separated. If a defined symbol is for internal
43         use only and should not appear in the generated "config.sh"
44         file, then it should be preceded by a '+' (not to be confused
45         with optional dependencies defined hereafter).
46         The second part of the list (after the middle ':') is the unit
47         dependency.  It should list all the needed special units, as
48         well as all the symbols used by the shell implementation. If
49         a symbol is nedded but its configuration value is not critical,
50         it can be preceded by a '+', in which case it is called a
51         conditional dependency: its corresponding unit will be loaded
52         if, and only if, that symbol is otherwise really wanted;
53         otherwise the default value will be used.
54
55 ?MAKE:  <tab> command
56
57         There can be one or more command lines following the initial
58         dependency lines.  Those commands will be executed when the
59         unit is wanted to load them into "Configure".
60         Note that the leading <tab> character is required before the
61         "command".
62
63 ?O:     Obsoleted?
64
65 ?P:     Public
66
67 ?RCS:   free text
68
69         To be used for RCS comments, at the top of the unit.
70
71 ?S:     symbol_name (obsolete symbol list)]:
72
73         Introduces a shell symbol. This first line names the symbol,
74         optionally followed by a list enclosed between parenthesis and
75         giving the obsolete equivalent. Those obsolete symbols will be
76         remapped to the new "symbol_name" if the -o option is given to
77         "metaconfig".
78
79 ?S:     any text, for "Porting/Glossary"
80
81         Basically a comment describing the shell symbol, which will be
82         extracted by "makegloss" into the Glossary file.
83
84 ?S:     .
85
86         Closes the shell symbol comment.
87
88 ?T:     What variables are used as temporary variables
89
90 ?V:     Visible?
91
92         ?V:fieldn
93
94 ?W:     Wanted
95
96 ?X:     any text
97
98         General purpose comments. May appear anywhere in the unit but must be
99         left justfied. For RCS comments, please use the ?RCS: comment form.
100
101 ?Y:     layout
102
103         Declare a layout directive for this unit. That directive may be one
104         of the strings "top", "default" or "bottom" (case does not matter,
105         recommended style is to spell them out uppercased). If omitted,
106         "default" is assumed.
107
108         This directive is only required if you wish to force a unit at the
109         top or the bottom of the generated "Configure" script, as unit
110         dependencies permit it. Important questions may thus be forced
111         at the beginning. Within the same layout class, units are sorted
112         alphabetically with two special cases for d_* and i_* units, forced
113         respectively at the top and bottom of their classes (but these
114         should belong to the default class).
115
116         It you force at the top a unit whose dependencies require all the
117         other unit to precede it, you achieve nothing interesting. Therefore,
118         that directive should really be used to increase the priority of
119         some interactive units that do not depend on many other user-visible
120         symbols, like path-related questions.
121
122         ?Y:TOP
123
124 lines can be made conditional (see Config_sh.U)
125
126 @if d_portable
127 :
128 :
129 @end