2 ======= =======================================================================
4 ?MAKE: The ?MAKE: line records dependencies
6 ?MAKE:symbol list: dependency list [+optional]
8 This is the first dependency line. The first "symbol list"
9 should list all the symbols built by this unit (i.e. whose
10 value is computed by the shell section of the unit). Symbols
11 should be space separated. If a defined symbol is for internal
12 use only and should not appear in the generated "config.sh"
13 file, then it should be preceded by a '+' (not to be confused
14 with optional dependencies defined hereafter).
15 The second part of the list (after the middle ':') is the unit
16 dependency. It should list all the needed special units, as
17 well as all the symbols used by the shell implementation. If
18 a symbol is needed but its configuration value is not critical,
19 it can be preceded by a '+', in which case it is called a
20 conditional dependency: its corresponding unit will be loaded
21 if, and only if, that symbol is otherwise really wanted;
22 otherwise the default value will be used.
26 There can be one or more command lines following the initial
27 dependency lines. Those commands will be executed when the
28 unit is wanted to load them into "Configure".
29 Note that the leading <tab> character is required before the
30 "command". Most likely your command will be "-pick add $@ %<".
31 If you omit this line, mlint won't complain, but the unit will
34 ?INIT: Initializations printed verbatim
36 ?LINT: Hints for metalint
38 set Listed variables are set
39 ?LINT:set d_getservprotos
40 describe Listed shell variables are described
41 ?LINT:describe awk ar bash bison byacc cat chgrp chmod chown
42 create Listed created files in regular units
44 known Listed C variables are described
46 change Shell variable ok to be changed
48 extern Variables known to be externally defined
50 usefile Files marked as being used
52 use Variables declared as used by unit
53 ?LINT:use PERL_CONFIG_SH
54 define Listed variables are defined
58 unclosed Unclosed here-documents
60 nothere Not a here-document name
61 nocomment OK if leading unit ': comment' missing
64 ?RCS: RCS comments are ignored
66 To be used for RCS comments, at the top of the unit.
72 ?D: Default value for conditional symbols
80 Defines what files are created by this module
82 Files produced in the UU directory and which are identified by the
83 convention ./filename. Files !filename are not produced, i.e. they are
84 temporary or externally provided.
86 ?F:cppstdin !testcpp.out !testcpp.c
88 ?H: Process the config.h lines
90 Defines the part to be included in the generated config_h.SH
92 To get #ifdefs in config_h.SH, you'll need strange constructs like
94 ?H:?%<:@if USE_SITECUSTOMIZE
95 ?H:?%<:#ifndef USE_SITECUSTOMIZE
96 ?H:?%<:#$usesitecustomize USE_SITECUSTOMIZE /**/
104 ?M: Process the confmagic.h lines
106 ?O: Unit obsolescence
108 ?P: Location of PD implementation file
112 ?S:symbol_name (obsolete symbol list)]:
114 Introduces a shell symbol. This first line names the symbol,
115 optionally followed by a list enclosed between parenthesis and
116 giving the obsolete equivalent. Those obsolete symbols will be
117 remapped to the new "symbol_name" if the -o option is given to
120 ?S: <tab> any text, for "Porting/Glossary"
122 Basically a comment describing the shell symbol, which will be
123 extracted by "makegloss" into the Glossary file.
127 Closes the shell symbol comment.
129 ?T: Shell temporaries used
131 What variables are used as temporary variables
133 ?V: Visible symbols like 'rp', 'dflt'
137 ?W: Wanted value for interpreter
139 ?X: User comment is ignored
141 General purpose comments. May appear anywhere in the unit but must be
142 left justfied. For RCS comments, please use the ?RCS: comment form.
144 ?Y: User-defined layout preference
146 Declare a layout directive for this unit. That directive may be one
147 of the strings "top", "default" or "bottom" (case does not matter,
148 recommended style is to spell them out uppercased). If omitted,
149 "default" is assumed.
151 This directive is only required if you wish to force a unit at the
152 top or the bottom of the generated "Configure" script, as unit
153 dependencies permit it. Important questions may thus be forced
154 at the beginning. Within the same layout class, units are sorted
155 alphabetically with two special cases for d_* and i_* units, forced
156 respectively at the top and bottom of their classes (but these
157 should belong to the default class).
159 It you force at the top a unit whose dependencies require all the
160 other unit to precede it, you achieve nothing interesting. Therefore,
161 that directive should really be used to increase the priority of
162 some interactive units that do not depend on many other user-visible
163 symbols, like path-related questions.
167 lines can be made conditional (see Config_sh.U)