1 :Info: mbuild: mb: 2022-09-13 mbuild, mb
2
3 Syntax as a command: mb BUILD_SCRIPT -control_args
4
5
6 Function: A subsystem of requests which build and prepare to install
7 all original-content segments in a build directory. Original-content
8 segments include: program source files, include files, info segments,
9 bind files, source archives for a new bound segment, etc.
10
11 The build directory contains a build script segment giving details of
12 the build. For information about contents of the build script, type:
13 help build_script.gi
14
15
16 Arguments:
17 BUILD_SCRIPT
18 pathname of the build script segment describing the changes to be
19 built. A suffix of .mb is assumed if not given in the final
20 entryname. If the directory part of this pathname does not
21 reference the working directory, then the working directory is
22 changed to the specified directory as the mbuild subsystem opens.
23 mbuild will prompt to create this build script if it is not found.
24 The star convention is allowed. default: search for **.mb in the
25 working directory: if one match is found that is the build script;
26 otherwise the user is asked to re-invoke mbuild giving a specific
27 build script pathname.
28
29
30 Control arguments phase:
31 mbuild tracks a "phase of building" which specifies whether the
32 user is "developing" a set of segments being changed/added, or
33 "auditing" those changes, or "installing" them. This phase is
34 stored in the Information -- section of the build script .mb
35 segment. One of the following control_args may be given to change
36 this stored phase setting.
37 -developing, -dev
38 changes are still being added to the build. default if no build
39 script segment exists in the build directory.
40 -auditing, -aud
41 changes are frozen mostly and are now being audited.
42
43
44 -installing, -inst
45 fully-audited changes are now being installed in the Multics
46 Libraries. This phase should be used only for installations into
47 the Multics Libraries directories. One or more Approve_ID values
48 must be set, along with an Install_ID value. These attributes are
49 appended to the command: update_seg -log
50 which appears in the install exec_com produced by the install_ec
51 request. The line appended to the -log input has the format:
52 MCR10126 MR12.8-1516
53
54
55 Control arguments initial requests:
56 -scan_read, -scrd
57 scans the installation directory looking for original-content
58 segments before entering the mbuild request loop. If a build
59 script segment is found, asks the user if it should be read.
60 default for developing phase
61 -read_analyze, -rdaz
62 reads an existing build script segment and analyzes segments
63 listed in its Changes -- section to determine exact contents
64 build. Original content segments not referenced in the build
65 script are ignored. No scan of the directory is performed.
66 default for auditing/installing phases
67
68
69 -scan, -sc
70 perform a scan of the installation directory before entering the
71 request loop. Do not ask about, or actually read, any build script
72 Changes -- section.
73 -no_scan, -nsc
74 omit the scan request before entering the mbuild request loop.
75
76
77 -request STR, -rq STR
78 executes STR as an mbuild request line before entering the
79 request loop.
80 -request_loop, -rql
81 enters the mbuild request loop. default
82 -no_request_loop, -nrql
83 does not enter the request loop.
84
85
86 Control arguments setup:
87 -approve APPROVE_ID,
88 -apv APPROVE_ID
89 adds an MCR number for this build directory. If only one value is
90 associated with this build, that value will be used if the
91 APPROVE_ID is omitted from the request:
92 hcom add_field -approve APPROVE_ID
93 The operand must be 24 characters or less, and must begin with one
94 of the following prefixes: MCR MECR PBF
95 acronyms of: Multics Change Request
96 Multics Emergency Change Request
97 Post Bug Fix
98
99
100 -install INSTALL_ID,
101 -in INSTALL_ID
102 associates a Multics Release INSTALL_ID e.g. MR12.8-1012 with
103 the build script. That value will be used if the INSTALL_ID is
104 omitted from the request: hcom add_field -install INSTALL_ID
105 The operand must be 20 characters or less, and must begin with the
106 prefix MR, an acronym for: Multics Release.
107
108 -set_log_dir DIRNAME, -sld DIRNAME
109 sets the log directory used by the update_seg initiate command.
110 default is to use the first directory returned by active function:
111 lds pn *.log
112
113
114 -abbrev, -ab
115 enables abbreviation expansion of request lines.
116 -profile path, -pf path
117 specifies the pathname of the profile to use for abbreviation
118 expansion. The suffix "profile" is added if necessary. This
119 control argument implies -abbrev.
120 -no_abbrev, -nab
121 does not enable abbreviation expansion of request lines. default
122
123
124 -prompt STR, -pmt STR
125 sets the request loop prompt to STR. The default is:
126 ^/mbuild^ ^d^:^2x
127 -no_prompt, -npmt
128 suppresses the prompt for request lines in the request loop.
129
130
131 :Info: summary.topic: summary: 2022-09-01 mbuild Requests
132
133 List of requests:
134 For details of any request, type: help REQUEST_NAME
135 list, ls
136 List files in the working directory the installation directory.
137 scan, sc
138 Scan the working directory for segments to build.
139 read, rd
140 Read a description of the build operation from a build script
141 segment.
142 analyze, az
143 Analyze information gathered by scan or read requests.
144 progress, pg
145 Report progress toward completing build and install tasks. List
146 requests that are still needed.
147 print, pr, p
148 Describe the build operation, either before or after an analyze
149 request. Print other mbuild settings. Display mbuild's threaded
150 lists of segments being installed.
151 set
152 Sets target library or library.directory for a given segment
153 being changed; or sets values for other sections of the build
154 script.
155 add
156 Adds lines to Description and Status; adds values to the MCRs,
157 developers, auditors, or installers arrays of build script.
158 save, sv
159 Save information about the build operation into a build script
160 segment.
161 compile, comp
162 Compile source segments to create their derived Unbound_obj
163 segments. Add extra names to unbound objects.
164 archive_prep, arch
165 Update bound segment source/object archives; bind object archives.
166 install_ec, inst
167 Create a Build_exec_com file to install segments into their target
168 library.
169 clean, cl
170 Remove any derived segments found/created by prior requests.
171
172
173 compare, cmp
174 Compare original and replacement source, include, info, or bindfile
175 segments.
176 history, hcom
177 Apply history_comment command to source, include, info, or bindfile
178 segments.
179 verify, vi
180 Check format of info segments in the installation directory.
181 xref
182 Display library source files that reference include segments in the
183 installation directory.
184 lib_names, libs
185 Display library paths with preferred library name.
186 library_descriptor, lds
187 Display information about the multics_libraries_ descriptor.
188 library_pathname, lpn
189 List pathnames in the library which match a given starname.
190 seg_type, seg
191 Describe mbuild build/install details or paradigm for a given
192 segment.
193 paradigm, pdm
194 Print information about an mbuild build/install paradigm.
195
196
197 help, h
198 Obtain detailed information on the subsystem.
199 .
200 Identify the subsystem.
201 ?
202 Produce a list of the most commonly used requests.
203
204
205 :Info: scan: sc: 2020-01-25 scan, sc
206
207 Syntax: scan -control_args
208 sc -control_args
209
210
211 Function: scans the working directory to identify segments to build and
212 install.
213
214
215 Control arguments:
216 -query, -qy
217 for the first scan in an mbuild invocation, check for a
218 build script segment in the installation directory. If one is
219 found, ask whether this file should be read following the scan
220 operation. default
221 -no_query, -nqy
222 do not ask about, or actually read, any build script segment.
223
224
225 :Info: read: rd: 2022-08-06 read, rd
226
227 Syntax: rd -control_args
228
229
230 Function: reads information about the build operation from a build
231 script segment. If reading the Changes -- section of the script,
232 data from those Build Script Language statements replaces segment
233 build details from any earlier scan or read request. Run another
234 analyze request to determine operations needed for the build.
235
236
237 Control arguments sections:
238 Select zero, one or more sections to read from the build script.
239 By default, all sections are read.
240 -description, -desc
241 Read the Description -- section of the build script. Segment
242 information obtained by earlier scan or read requests is preserved.
243 -changes, -change, -chg
244 Read the Changes -- section of the build script. Segment build
245 details from any earlier scan or read request are replaced by
246 statements in the current Changes section. Run another analyze
247 request to determine operations needed for the build.
248
249
250 -information, -info
251 Read the Information -- section of the build script. Segment
252 information obtained by earlier scan or read requests is preserved.
253 -status, -st
254 Read the Status -- section of the build script. Segment
255 information obtained by earlier scan or read requests is preserved.
256
257
258 -all, -a
259 Read the entire build script. Segment information from an earlier
260 scan or read request is replaced by segment information read from
261 the build script. This replacement data must then be analyzed.
262 default
263 -no_description, -ndesc
264 Do not read the Description -- section of the script.
265 -no_changes, -no_change, -nchg
266 Do not read the Changes -- section of the script.
267 -no_information, -ninfo
268 Do not read the Information -- section of the script.
269 -no_status, -nst
270 Do not read the Status -- section of the script.
271
272
273 Control arguments display:
274 -print, -pr
275 Print segment information obtained by this read request. default
276 -no_print, -npr
277 Do not print data read by this request.
278 -brief, -bf
279 Do not report an error if the build script segment does not exist.
280
281
282 -debug LEVEL, -db LEVEL
283 LEVEL=0: disable debugging when reading the script. default
284 LEVEL=1: display the matching reduction as input tokens in the
285 script are matched.
286 LEVEL=2: display all input tokens before parsing begins; then
287 perform level 1 debugging.
288
289
290 :Info: analyze: az: 2022-08-24 analyze, az
291
292 Syntax: analyze
293 az
294
295
296 Function: analyzes information gathered by scan or read requests.
297 Knowledge of how programs and documentation are stored in libraries
298 like the Multics Libraries reshapes mbuild's view of segments in the
299 install directory. Analysis is saved in Changes -- section of the
300 build script segment.
301
302
303 Control arguments:
304 -clean, -cl
305 Run the clean request if analysis completes successfully. The
306 installer is asked whether to delete the derived-content segments
307 found by the analysis. default
308 -no_clean, -ncl
309 Omit the clean request when analysis completes successfully.
310 -progress, -pg
311 Run the progress request when analysis completes successfully.
312 default
313 -no_progress, -npg
314 Omit the progress request when analysis completes successfully.
315
316
317 :Info: print: pr: p: 2022-10-13 print, pr, p
318
319 Syntax: p -control_args
320
321
322 Function: prints information about a build operation, before or after
323 an analyze request. This information may come from sections of the
324 build script segment, or from analysis of the Build Language
325 statements, etc.
326
327
328 Control arguments build script sections:
329 One or more of the following may be given to select data to be
330 printed about the current build.
331 -script, -scr
332 print information contained in every section of the build script
333 segment.
334 -directory, -dir
335 print the current build directory pathname.
336 -description, -desc
337 print the current description added by the installer for this
338 build directory. The description is specified using the set
339 request, lines may be appended using the add request, or by editing
340 the Build Script segment to add/change the Description -- section
341 at the top of this segment.
342
343
344 -changes, -change, -chg
345 print from mbuild's internal data all Build Script Language
346 statements describing this build. This information may include
347 guesses made by the scan and analyze requests. If an analyze
348 request has not succeeded since the last scan or read request,
349 the displayed statement may not appear as yet in the build script.
350 -information, -info
351 print data items in the Information -- section of the build
352 script segment.
353 -status, -st
354 print the current data describing status of build operations. This
355 data may be specified using the set request, lines may be appended
356 using the add request, or by editing the Build Script segment to
357 change the Status -- section at the top of this segment.
358
359
360 Control arguments other types of data:
361 To display other kinds of data, only one of the following may be
362 given.
363 -Seg STARNAME, -seg STARNAME
364 print all information about a given original-content segment in the
365 build directory.
366 -list LIST_NAME, -ls LIST_NAME,
367 -thread LIST_NAME, -th LIST_NAME
368 print all entries on one of the threaded lists maintained by mbuild.
369 LIST_NAME may be "all" to display items on all threaded lists; or
370 one of the IDs given in "List of thread selectors" below. "all" is
371 the default if no LIST_NAME is given.
372
373
374 -phase
375 print the current phase of the build process, as recorded in the
376 build script Information -- section. This phase affects the
377 default requests performed when mbuild is first invoked. For
378 details, type: ..help mbuild -section "initial requests"
379 -log_dir, -ld
380 print the current log directory, used in the update_seg initiate
381 request. This directory contains segments describing the
382 installation: Installations.log, Installations.info
383
384
385 -new
386 print original-content segments found by a scan of the install
387 directory that are not mentioned in the build script. When a
388 read request loads the build script into mbuild, it reports this
389 same possible omission of segments; print -new allows the user
390 to re-display this data.
391 -unknown, -unk
392 print original-content segments found by a scan of the install
393 directory that have an UNKNOWN library designation.
394 -save_format, -save
395 print build data as it would appear in the build script segment.
396
397
398 Control arguments build statement format:
399 -scan, -sc
400 print data gathered by most recent scan of the install directory,
401 or read from the build script segment. default if an analyze
402 request has not been issued.
403 -analyze, -az
404 print build data reshaped by an analyze request. default
405 after an analyze request is issued.
406
407
408 Control arguments build statement details:
409 Arguments to select information to be displayed for each structure.
410 Structure varieties include: Seg representing an actual segment;
411 and BOUNDOBJ, UNBOUNDOBJ, and COMPILE which manage relationships
412 between segments.
413 -all, -a
414 displays all possible information for each structure type.
415 -structure
416 displays type of structure: Seg, BOUNDOBJ, UNBOUNDOBJ, or COMPILE,
417 preceding the segment's name. If both -structure and -type are
418 given, the structure and type are shown in combination:
419 SegInclude. If neither are given, only the segment name is
420 displayed.
421
422
423 -type, -tp
424 displays the segment type based upon entryname suffix. The
425 segment's name follows this type value. Possible values are
426 returned by the request: seg_type -type
427 -library, -lb
428 display the target library.directory into which the segment will be
429 installed.
430 -header, -he
431 displays the operation ADD REPLACE DELETE or UPDATE; and
432 compiler used to produce derived content from the source segment.
433 -pointer, -ptr
434 displays type/name of other structures pointed to by the displayed
435 structure.
436
437
438 -archive, -ac
439 displays the target archive name in which the segment will be
440 installed. This is meaningful for source or object segments which
441 are components of a bound segment archive.
442 -thread_base, -Tb
443 displays information about threaded lists anchored in the structure.
444 For example, a Segsource_arch anchors a list of Segsource
445 components targeted for updating in that archive.
446 -thread_data, -Td
447 displays information about threaded lists in which the structure is
448 a member.
449 -name, -nm
450 display names to be added to, or deleted from, the segment as it is
451 installed in the library.
452
453
454 List of negative control arguments:
455 For some types of information, extra information is displayed by
456 default. The following control arguments turn off display of
457 unwanted data.
458 -no_structure
459 stops output of structure information if it is displayed by default,
460 or if -all was given earlier in request line.
461 -no_type, -ntp
462 stops output of type information if it is displayed by default, or
463 if -all was given earlier in request line.
464 -no_library, -nlb
465 stops output of library information if it is displayed by default,
466 or if -all was given earlier in request line.
467
468
469 -no_header, -nhe
470 stops output of header information if it is displayed by default, or
471 if -all was given earlier in request line.
472 -no_archive, -nac
473 stops output of archive information if it is displayed by default,
474 or if -all was given earlier in request line.
475 -no_pointer, -nptr
476 stops output of pointer information if it is displayed by default,
477 or if -all was given earlier in request line.
478 -no_thread_base, -nTb
479 stops output of thread anchor information if it is displayed by
480 default, or if -all was given earlier in request line.
481
482
483 -no_thread_data, -nTd
484 stops output of thread membership information if it is displayed by
485 default, or if -all was given earlier in request line.
486 -no_name, -nnm
487 stops output of names added/removed information if it is displayed
488 by default, or if -all was given earlier in request line.
489
490
491 List of thread selectors:
492 all
493 Display structures on all populated threads.
494 BOUNDOBJ, BND
495 All BOUNDOBJ structures.
496 COMPILE, COMP
497 All COMPILE structures.
498 UNBOUNDOBJ, UNBND
499 All UNBOUNDOBJ structures.
500 Seg, seg
501 All Seg structures.
502
503
504 Unbound_obj, Unb
505 All SegUnbound_obj structures following the Unbound_obj paradigm.
506 Bound_obj, Bnd
507 All SegBound_obj structures following the Bound_obj paradigm.
508 bindfile, bind
509 All Segbindfile structures following the bindfile paradigm.
510 object_arch, oArch
511 All Segobject_arch structures following the object_arch paradigm.
512 source_arch, sArch
513 All Segsource_arch structures following the source_arch paradigm.
514 source, src
515 All Segsource structures following the source paradigm. This
516 excludes sources derived from 1st step of a 2-step compile sources
517 on the INTERMEDIATE thread.
518
519
520 target_only, target
521 All Seg... structures following the target_only paradigm.
522 listing, list
523 All Seglisting structures following the listing paradigm.
524 mbuild_support, support, sup
525 All SegBuild_xxx structures following the mbuild_support paradigm.
526 object_x_only, o.x
527 All Seg... structures following the object_x_only paradigm.
528 scan, sc
529 Original-content segments found in install dir before building.
530 INTERMEDIATE, inter
531 Some Segsource structures that aren't installed because their
532 content is derived from other Segsource files.
533
534
535 :Info: progress: pg: 2019-07-30 progress, pg
536
537 Syntax: progress
538 pg
539
540
541 Function: reports progress toward completing build and install tasks.
542
543
544 :Info: set: 2022-10-23 set
545
546 Syntax: set -control_args
547
548
549 Function: sets the target library or library.directory for a given
550 segment in the Changes -- section of the build script; or sets
551 values for other sections of the build script.
552
553 The build script includes four sections:
554 Description --
555 Free-form text giving an hcom-style summary of major changes.
556 Changes --
557 Build Script Language statements describing the segments being
558 changed by the build.
559 Information --
560 Build phase and key identifiers associated with the build script.
561 Status --
562 Free-form text describing current status of various steps of the
563 build operation.
564
565
566 This request sets completely replaces current values with new
567 information. To append new lines to the free-form sections, or
568 additional APPROVE_IDs or USER_IDs, use the add request. For details,
569 type: help add
570
571
572 To change the library descriptor named in the Information --
573 section, use the mbuild request: lds set DESCRIPTOR_NAME
574
575
576 Control arguments build script information section:
577 Each set request must give only one of the following -ctl_args,
578 or one of the -ctl_args from the other Control arguments sections.
579 -phase PHASE_NAME
580 sets the current phase of operation to one of the following values:
581 developing
582 changes are still being added to the build.
583 auditing
584 changes are frozen mostly and are now being audited.
585 installing
586 fully-audited changes are now being installed. This phase
587 can only be set if an INSTALL_ID and one or more APPROVE_IDs
588 has been set first. In "installing" phase, these ID values
589 are appended to the update_seg -log information when the
590 changes are installed.
591
592
593 -approve APPROVE_IDs,
594 -apv APPROVE_IDs
595 associates one or more APPROVE_IDs e.g. MCR10019 with the build
596 script. If several APPROVE_IDs are given, all will be listed in
597 the build script. And if only one APPROVE_ID is given, that value
598 will be used if no APPROVE_ID is given in the request:
599 hcom add_field -apv APPROVE_ID
600 or any other hcom operation accepting the -approve control
601 argument. The operand must be 24 characters or less, and must
602 begin with one of the following prefixes: MCR MECR PBF
603 acronyms of Multics Change Request
604 Multics Emergency Change Request
605 Post Bug Fix
606
607
608 -install INSTALL_ID,
609 -in INSTALL_ID
610 associates a Multics Release INSTALL_ID e.g. MR12.8-1012 with
611 the build script. That value will be used if no INSTALL_ID is
612 given in the request: hcom add_field -install INSTALL_ID
613 or any other hcom operation accepting the -install control
614 argument. The operand must be 20 characters or less, and must
615 begin with the prefix MR, an acronym for: Multics Release.
616
617
618 -log_dir DIRNAME, -ld DIRNAME
619 sets the log directory used by the update_seg initiate command. If
620 no log directory has been set by "mbuild -set_log_dir DIR" or the
621 request "set -log_dir DIR", the install_ec request will use the
622 directory selected by library descriptor matching -library *.log
623 if one is defined.
624
625
626 -developer USER_IDs,
627 -dev USER_IDs
628 one or more PERSON_ID.PROJECT_ID values identifying users
629 developing the changes.
630 -auditor USER_IDs,
631 -aud USER_IDs
632 one or more PERSON_ID.PROJECT_ID values identifying users
633 auditing the changes.
634 -installer USER_IDs,
635 -inst USER_IDs
636 one or more PERSON_ID.PROJECT_ID values identifying users
637 installing the changes.
638
639
640 Control arguments build script other sections:
641 Each set request must give only one of the following -ctl_args,
642 or one of the -ctl_args from the other Control arguments sections.
643 -description, -desc
644 prompts for a new description of the build operation. The
645 description text ends with a line containing only a period .
646 character. The new text is saved in the Description -- section of
647 the build script to preserve its value across mbuild invocations.
648 Another way to set or revise the description is by editing the
649 build script, then issue the request: read -desc
650
651
652 -status, -st
653 prompts for a new status of the build process. The text entered
654 ends with a line containing only a period . character.
655 The new text is saved in the Status -- section of the build
656 script to preserve its value across mbuild invocations.
657 Another way to set or revise the status text is by editing the
658 build script, then issue the request: read -status
659
660
661 Control arguments build script changes section:
662 Each set request must give both of the following -ctl_args,
663 and may not include -ctl_args from the other Control arguments
664 sections. Name a segment using the -seg control_arg followed by a
665 -library control_arg giving a new value.
666 -Seg SEG_NAME -control_arg,
667 -seg SEG_NAME -control_arg
668 selects a segment to modify. The star convention may be used
669 to select several segments to modify. The -control_arg specifies
670 which attribute of the Seg structure to modify. Only the following
671 attribute may be changed.
672
673 -library LIBRARY, -lb LIBRARY
674 gives a new value for the Seg.library attribute. Use one of the
675 formats: LIB_NAME.DIR_NAME or LIB_NAME or DIR_NAME
676
677
678 List of preferred library names:
679 LIB_NAME.DIR_NAME combinations that are short and readily
680 identifiable. Note that hard.i and mcs.i reference a directory
681 named info, but it contains hardcore/communication configuration
682 files and maps, not info segments. To see directories named by
683 these libraries, enter the request: libs
684
685
686 :Info: add: 2022-10-23 add
687
688 Syntax: add -control_arg
689
690
691 Function: adds lines to the Description -- and Status -- sections
692 of the build script; or adds values to the Approve_IDs, Developers,
693 Auditors, or Installers attributes of the Information -- section of
694 the build script segment.
695
696 The build script includes four sections:
697 Description --
698 Free-form text giving an hcom-style summary of major changes.
699
700
701 Changes --
702 Build Script Language statements describing the segments being
703 changed by the build.
704
705
706 Information --
707 Build phase and key identifiers associated with the build script.
708
709
710 Status --
711 Free-form text describing current status of various steps of the
712 build operation.
713
714
715 To completely replace any of the free-form sections or arrays, or
716 to change the values of scalar elements in the Information --
717 section, use the set request. For details, type: help set
718
719
720 Control arguments build script information section:
721 Each add request must give only one of the following -ctl_args,
722 or one of the -ctl_args from the other Control arguments sections.
723
724
725 -approve APPROVE_IDs,
726 -apv APPROVE_IDs
727 adds one or more APPROVE_IDs e.g. MCR10019 to the
728 Information -- section of the build script. If several
729 APPROVE_IDs are given, all will be listed. And if only one
730 APPROVE_ID is listed in the build script, that value will be used
731 if no APPROVE_ID is given in the request:
732 hcom add_field -apv APPROVE_ID
733 The operand must be 24 characters or less, and must begin with one
734 of the following prefixes: MCR MECR PBF
735 acronyms of: Multics Change Request
736 Multics Emergency Change Request
737 Post Bug Fix
738
739
740 -developer USER_IDs,
741 -dev USER_IDs
742 one or more PERSON_ID.PROJECT_ID values identifying users
743 developing the changes. These will be added to any existing
744 user_IDs if they are not already present in the array.
745
746
747 -auditor USER_IDs,
748 -aud USER_IDs
749 one or more PERSON_ID.PROJECT_ID values identifying users
750 auditing the changes. These will be added to any existing
751 user_IDs if they are not already present in the array.
752 -installer USER_IDs,
753 -inst USER_IDs
754 one or more PERSON_ID.PROJECT_ID values identifying users
755 installing the changes. These will be added to any existing
756 user_IDs if they are not already present in the array.
757
758
759 Control arguments build script other sections:
760 Add lines to a section by giving only one of these -ctl_args.
761 -description, -desc
762 prompts for new lines to be appended to the Description -- section
763 of the build script. The new lines end with a line containing only
764 a period . character. Another way to add or revise the
765 description is by editing the build script segment.
766 -status, -st
767 prompts for new lines to be appended to the Status -- section of
768 the build script. The new lines end with a line containing only a
769 period . character. Another way to add or revise the status text
770 is by editing the build script segment.
771
772
773 :Info: save: sv: 2022-08-24 save, sv
774
775 Syntax: save
776 sv
777
778
779 Function: save mbuild's information about the current build operation
780 to the build script segment. All sections are updated from mbuild's
781 internal data. If statements from the Changes -- section have not
782 been analyzed yet, the Changes -- section from the existing build
783 script is preserved.
784
785
786 :Info: compare: cmp: 2020-01-26 compare, cmp
787
788 Syntax: compare SEG_NAME -cpa_control_args
789 cmp SEG_NAME -cpa_control_args
790 compare SEG_NAME -brief
791 cmp SEG_NAME -brief
792
793
794 Function: compares original source, include, info, and bindfile
795 segments with replacement segments being installed.
796
797
798 Arguments:
799 SEG_NAME
800 names the segments to compare. The name includes the language
801 suffix e.g. source.pl1. If not given, all source, include,
802 info, and bindfile segments being REPLACEd are compared. The
803 star convention may be used to select several segments.
804
805
806 Control arguments:
807 Any control argument accepted by compare_ascii cpa command may
808 be given, except -original and -no_original. For segments being
809 REPLACEd, the compare request automatically adds:
810 -original LIBRARY_PATH
811 giving path in the library of the segment being replaced.
812
813 -brief, -bf
814 use the Multics compare active function to identify replaced
815 segments whose contents differs from their corresponding library
816 version. Only the file name and corresponding library path is
817 displayed.
818
819
820 :Info: history: hcom: 2022-09-04 history, hcom
821
822 Syntax:
823 hcom HCOM_OPERATION SEG_NAME HCOM_ARGS_AND_CONTROL_ARGS
824
825
826 Syntax as an active request:
827 hcom HCOM_OPERATION SEG_NAME HCOM_ARGS_AND_CONTROL_ARGS
828
829
830 Function: applies the Multics history_comment command to
831 original-content source, include, info, and bindfile segments
832 in the build directory.
833
834
835 This information describes differences between the full Multics
836 history_comment hcom command and the mbuild history hcom request.
837 The mbuild hcom request makes the SEG_NAME argument optional by
838 supplying names of original-content segments from the build script
839 when SEG_NAME is omitted from the hcom request. It then invokes the
840 Multics hcom command with those addition arguments for each matching
841 original-content segment.
842
843 To learn more about the full Multics history_comment command, type:
844 .. help hcom
845 To learn more about individual history_comment operations, type:
846 .. help hcom.HCOM_OPERATION
847 For example: .. help hcom.add_field
848
849
850 Arguments:
851 HCOM_OPERATION
852 names the history_comment operation to perform on each segment. See
853 "List of hcom operations" below.
854 SEG_NAME
855 names the original-content segments to process. The name includes
856 the language suffix e.g. probe.pl1. If not given, all
857 original-content source, include, info, and bindfile segments in the
858 installation directory are processed. The star convention may be
859 used to select several segments.
860
861
862 HCOM_ARGS_AND_CONTROL_ARGS
863 give any arguments and control arguments accepted by the:
864 history_comment HCOM_OPERATION
865 command. For argument details, type:
866 .. help hcom.HCOM_OPERATION
867 where HCOM_OPERATION is an operation from "List of hcom operations"
868 below. Use double-quote characters around any Argument containing
869 special characters.
870
871
872 Control arguments that differ from the hcom command:
873 -approve APPROVE_ID,
874 -apv APPROVE_ID
875 inserts into selected history comments having no approve element
876 the given APPROVE_ID value. The APPROVE_ID operand may be omitted
877 if the build script Information -- section contains a single
878 Approve_IDs value; that Approve_ID attribute is used as the missing
879 APPROVE_ID value.
880
881
882 -install INSTALL_ID,
883 -in INSTALL_ID
884 specifies an identifier associated with installing the changed
885 module into execution libraries. The INSTALL_ID operand may be
886 omitted if the build script Information -- section contains an
887 Install_ID value; that Install_ID attribute is used as the missing
888 INSTALL_ID value.
889
890
891 List of hcom operations:
892 For details about any hcom operation, type:
893 .. help hcom.HCOM_OPERATION
894 add
895 adds a new history comment to a source program.
896 add_field, af
897 add missing fields to an existing history comment.
898 replace_field, rpf
899 replaces fields in an existing history comment.
900 display, ds
901 displays one or more history comments in a source program.
902 format, fmt
903 reformats history comments in a source program, placing them in
904 standard form.
905
906
907 check, ck
908 checks history comments in a source program prior to its submission
909 for installation to ensure that all fields except the INSTALL_ID are
910 present.
911 compare, cmp
912 displays the differences, if any, between the source and original
913 modules.
914 exists
915 checks to see if a history comment with certain attributes exists.
916 get
917 gets one or more field values from selected history comments.
918 install
919 checks history comments in a source program prior to its
920 installation for completeness, and updates the INSTALL_ID field.
921
922
923 Notes:
924 Documentation for the Multics history_comment command includes the
925 following sections giving more details about the command and its
926 operations:
927 Notes on format
928 List of history comment fields
929 Notes on typical usage
930 Notes on validation routine
931 Notes on syntax of validation routine
932 Notes on arguments for validation routine
933
934 To display these sections, type: .. help hcom -section TITLE_WORD
935 where TITLE_WORD is one of the words in the section titles listed
936 above.
937
938
939 :Info: compile: comp: 2019-01-29 compile, comp
940
941 Syntax: compile SEG_NAME -control_args
942 comp SEG_NAME -control_args
943
944
945 Function: compiles source segments to create their derived Unbound_obj
946 segments.
947
948
949 Arguments:
950 SEG_NAME
951 names a single segment to compile. The name includes the language
952 suffix e.g. source.pl1. If not given, all segments in the
953 COMPILE list are compiled. Useful to recompile a single source
954 after correcting a compilation error. The star convention is
955 supported.
956
957
958 Control arguments:
959 If given, the following control arguments are added to any compile
960 option given in the source statement for each segment.
961 -list, -ls
962 for a PL/I compilation, produces a source program listing followed
963 by a list of all the names used in the compilation, followed by an
964 assembly-like listing of the compiled object program. Listing
965 produced by other compilers may have other content.
966 -table, -tb
967 for a PL/I compilation, produces an Unbound_obj output containing a
968 full symbol table for use by probe and debug commands.
969
970
971 :Info: archive_prep: arch: 2021-02-14 archive_prep, arch
972
973 Syntax: archive_prep -control_arg
974 arch -control_arg
975
976
977 Function: updates bound segment source/object archives. Sorts updated
978 archive components into alphanumeric order within their archive.
979 Binds object archives to produce a bound segment.
980
981
982 Control arguments:
983 -list, -ls
984 produces a listing segment whose name is derived from the name of
985 the bound object segment plus a suffix of list. The listing segment
986 is generated to dprint; it contains the bound segment's bind control
987 segment see "Notes on bindfile", its bind map, and that
988 information from the bound object segment printed by the
989 print_link_info command. You can't invoke -list with -map. In the
990 absence of -list or -map, no listing segment is generated.
991 -map
992 produces a listing segment with the suffixes list and map that
993 contains only the bind map information. It is incompatible with
994 -list. In the absence of -list or -map, no listing segment is
995 generated.
996
997
998 -no_sort, -ns
999 Most bind files have an Order statement controlling order in which
1000 object components appear in the output bound segment produced by
1001 the bind command. For bound segments having no bind file or a bind
1002 file not using the Order statement, the bind command sequences
1003 object components by their order of appearance in input archives.
1004 Therefore, -no_sort should be used to suppress sorting of archives
1005 for such bound segments.
1006
1007
1008 :Info: install_ec: inst: 2022-10-23 install_ec, inst
1009
1010 Syntax: install_ec -control_arg
1011 inst -control_arg
1012
1013
1014 Function: creates the Build_exec_com file, containing update_seg
1015 commands that install the segments identified in the build script.
1016
1017
1018 Control arguments:
1019 -list, -ls
1020 installs any .list segments found in the installation directory
1021 into the LIBRARY_NAME.listings target directory.
1022
1023
1024 Notes:
1025 If an Install_ID and one or more Approve_IDs attributes have been
1026 set for the build segment, and the build phase has been set to
1027 "installing", then a line containing those ID attributes is
1028 appended to the input provided by the install exec_com for its
1029 command: update_seg -log
1030
1031 Format of these IDs is: Approve_IDs Install_ID
1032
1033 For example: MCR10126 MR12.8-1415
1034
1035
1036 Examples:
1037 The following shows an install exec_com generated for a
1038 build script that installs a single include file.
1039
1040
1041 test_09.mb.ec 10/23/22 1244.3 pdt Sun
1042
1043 &version 2
1044 &trace &command off
1045 &-
1046 &- Phase: installing;
1047 &- Descriptor: >t>multics_libraries_;
1048 &- LogDir: -library *.log;
1049 &-
1050 &- Approve_IDs: MCR10126;
1051 &- Install_ID: MR12.8-1619;
1052 &-
1053 &-
1054 delete test_09.mb.i? -brief -query_all
1055 us sd -set_log_dir ">ldd>log" -acl re *.*.* -rb 4 5 5 &- ---- set global defaults ----
1056 &-
1057 &attach &trim off
1058 us in test_09.mb.io -log -no_fill
1059 A) Install include segment.
1060 MCR10126 MR12.8-1619
1061 .
1062 &detach
1063 &-
1064 us in -acl r *.*.* &- -------- Include ------------
1065 us add mbuild_script_info_attr.incl.pl1 >ldd>include>==
1066 &-
1067 us ls
1068 us pr
1069
1070
1071 :Info: clean: cl: 2019-07-24 clean, cl
1072
1073 Syntax: clean -control_args
1074 cl -control_args
1075
1076
1077 Function: Removes derived segments found/created by prior mbuild
1078 requests, or by the update_seg install command. Use a control argument
1079 to reduce or widen the range of files removed.
1080
1081
1082 Control arguments:
1083 -all, -a
1084 Removes all files created by any mbuild request, except the build
1085 script segment. Used when starting over on a build effort after
1086 compile or archive_prep requests report errors; or after:
1087 update_seg install or de_install.
1088 -installed, -inst
1089 Removes derived-content segment created by a build effort, leaving
1090 only: original-content segments; build script segment;
1091 Build_exec_com; and segments created by running the update_seg
1092 install command: the Build_io .mb.io installation object file;
1093 and the Build_log .mb.il. default if neither -all nor -list is
1094 given.
1095 -listings, -list, -ls
1096 Removes only listings .list segments created by the build effort.
1097
1098
1099 -intermediate, -inter
1100 Removes only intermediate source segments those created by the 1st
1101 step of a 2-step translation.
1102 -query_all -qya
1103 Lists segments to be removed and asks queries whether they should be
1104 deleted or not. default
1105 -no_query_all -nqya
1106 Removes segments without a query. Segments removed are still
1107 listed.
1108
1109
1110 :Info: lib_names: libs: 2019-07-22 lib_names libs
1111
1112 Syntax: lib_names -control_arg
1113 libs -control_arg
1114
1115
1116 Function: Display library paths with preferred library name.
1117
1118
1119 Control arguments:
1120 -library -lb
1121 Display library root directories defined in the current library
1122 descriptor and the preferred library name identifying each
1123 directory. default
1124 -directory -dir
1125 Display the preferred <dir-name> components for 2-component library
1126 names <lib-name>.<dir-name> used by mbuild.
1127 -analyze -az -analysis -anal
1128 Show how preferred library names were devised for each root
1129 directory of the current library descriptor.
1130
1131
1132 :Info: paradigm: pdm: 2019-06-10 paradigm pdm
1133
1134 Syntax: paradigm paradigm name -control_args
1135 pdm paradigm name -control_args
1136
1137
1138 Syntax as an active request: pdm paradigm_name -control_args
1139
1140
1141 Function: displays information about build paradigms the procedures
1142 and policies for building a given type of segment and installing it
1143 into the Multics Libraries.
1144
1145
1146 If invoked without args displays a 3-line description of the known
1147 build paradigms including: name purpose and example segments using
1148 that paradigm.
1149
1150 If invoked with a paradigm_name and no control_args displays a longer
1151 description of that paradigm.
1152
1153 As an active function specific information about a given paradigm is
1154 returned.
1155
1156
1157 Arguments:
1158 operation
1159 is "paradigm" or "pdm".
1160 paradigm_name
1161 names a paradigm to be displayed. This is optional when invoked as
1162 a command but required when used as an active function.
1163
1164
1165 Control arguments:
1166 -all -a
1167 displays all information for the paradigm.
1168 -name -nm
1169 displays the paradigm name.
1170 -purpose
1171 displays the purpose of the paradigm.
1172 -example
1173 displays an example segment that is built or installed using the
1174 paradigm.
1175 -steps
1176 displays steps performed as part of this build paradigm.
1177
1178
1179 :Info: seg_type: seg: 2019-06-10 seg_type seg
1180
1181 Syntax: seg_type seg_name -control_args
1182 seg seg_name -control_args
1183 seg_type -for_paradigm paradigm_name
1184 seg -for_paradigm paradigm_name
1185
1186
1187 Syntax as an active request: seg_type seg_name -control_args
1188 seg seg_name -control_args
1189
1190
1191 Function: displays information about the different types of segments
1192 installed in the Multics Libraries.
1193
1194 If invoked without args summarizes known segment types installed in
1195 the Multics Libraries. This includes a starname selecting a group of
1196 segments and characteristics of segments in the group.
1197
1198 If invoked with a seg_name and no control_args displays full
1199 information about building and/or installing that segment.
1200
1201 As an active function returns selected information about build a given
1202 segment.
1203
1204
1205 Arguments:
1206 operation
1207 is "seg_type" or "seg"
1208 seg_name
1209 names a segment whose build/install information is displayed. This
1210 argument is optional when invoked as a command but required when
1211 used as an active function.
1212
1213
1214 Control arguments:
1215 -for_paradigm paradigm_name -fpdm paradigm_name
1216 selects all segment types built using the given paradigm. This
1217 control argument may not be used as an active function.
1218 -all -a
1219 displays all information for the build type.
1220 -name -nm
1221 displays a starname that matches segments in the build type.
1222 -description -desc
1223 displays a title for segments matching the starname.
1224 -type -tp
1225 displays the <seg-type> value given by mbuild in its
1226 Seg<seg-type structures for segments having the build type..
1227 -library -lb
1228 displays library in which this type of file is installed.
1229
1230
1231 -compiler
1232 displays compiler command name used in building the segment.
1233 -option -op
1234 displays default compiler options used in building the segment.
1235 -isuffix -isfx
1236 displays suffix of any intermediate files generated by the compiler.
1237 For example the reductions compiler: generates a .pl1 file; invokes
1238 pl1 to compile this file; and leaves the .pl1 file in working
1239 directory as a debugging aid.
1240 -osuffix -osfx
1241 displays suffix if any of object segment generated by the
1242 compiler.
1243
1244
1245 -paradigm -pdm
1246 displays name of the paradigm used in building the segment.
1247 -steps
1248 displays steps performed as part of this build paradigm.
1249
1250
1251 :Info: help: h: 2020-04-24 help h
1252
1253 Syntax: help TOPIC -control_args
1254 h TOPIC -control_args
1255
1256
1257 Function: display information about a topic related to the mbuild
1258 system or its requests.
1259
1260
1261 Arguments:
1262 TOPIC
1263 is an mbuild request name; or build_script to display information
1264 about the Build Script Language. If not given a summary of mbuild
1265 requests is printed.
1266
1267
1268 Control arguments:
1269 -all -a
1270 displays all information available without paragraph or section
1271 prompts.
1272 -brief -bf
1273 displays a summary of request syntax arguments and control
1274 arguments.
1275 -control_arg ARG_NAME -ca ARG_NAME
1276 displays full information about the given argument or control
1277 argument.
1278 -header -he
1279 displays full pathname of info segment matching TOPIC.
1280
1281
1282 :Info: verify: vi: 2021-02-14 verify vi
1283
1284 Syntax: vi SEG_NAME -verify_info_control_args
1285 vi -rules AREA
1286
1287
1288 Function: checks format of info segments; or displays rules and
1289 guidelines for info segment formatting and section titles.
1290
1291
1292 Arguments:
1293 SEG_NAME
1294 name the segments to check. The .info suffix must be given.
1295 The star convention may be used to select several segments.
1296 If SEG_NAME is not given all info segments are checked.
1297 No SEG_NAME is permitted if -rules is given.
1298
1299
1300 Control arguments:
1301 Any control argument accepted by verify_info vi command may
1302 be given. Commonly-used controls are described below. For a
1303 full list of controls type: help verify_info -brief
1304 -names -nm
1305 add names required by guidelines if missing from an info segment.
1306 Reorder names following guidelines. If names exist that conflict
1307 with guidelines ask user for permission to remove those names.
1308 If removal not granted move conflicting names to end of name list.
1309 Name changes are listed in informational messages.
1310 -no_names -nnm
1311 suppress name additions removals and reordering. Error messages
1312 report names that are missing conflict with guidelines or need to
1313 be reordered. default
1314
1315
1316 -force_names -fnm
1317 change names to follow all guidelines without user queries.
1318 -rules AREA
1319 displays verify_info guidelines and rules for info segment structure
1320 and format. See "List of rule areas" below.
1321
1322
1323 List of rule areas:
1324 The -rules AREA operand may be any of the following.
1325 all a
1326 displays all rules and guidelines used by verify_info. default
1327 file f
1328 displays guidelines for supported file structures allowed order of
1329 :Info: :Info: :Entry: and :hcom: block divider lines within an
1330 info segment.
1331 block bk
1332 displays rules used to determine the kind of each info block
1333 e.g. command or active function subroutine subsystem request
1334 etc..
1335
1336
1337 section scn
1338 displays Multics standard info segment section titles and a list of
1339 obsolete or deprecated titles with a preferred replacement.
1340 KIND_OF_INFO_BLOCK
1341 displays section titles typical for a particular kind of info block
1342 including the usual order of appearance within the block of each
1343 title. See "List of info block kinds" below.
1344
1345
1346 List of info block kinds:
1347 The -rules KIND_OF_INFO_BLOCK value may be any of the following.
1348 all_kinds ak
1349 display section titles typical of all of the following block kinds.
1350 command cmd
1351 display section titles used in info blocks describing commands
1352 and/or active functions.
1353 general_info gi
1354 display section titles used in info blocks describing general
1355 information.
1356
1357
1358 subsystem ss
1359 display section titles used in info blocks describing subsystem
1360 requests and/or active requests; subsystem request summary; or other
1361 subsystem topic.
1362 request req
1363 display section titles used in info blocks describing subsystem
1364 requests and/or active requests.
1365 topics topic
1366 display section titles used in info blocks describing subsystem
1367 topics information not a request description or summary of
1368 requests.
1369
1370
1371 subroutine subr
1372 display section titles used in info blocks describing a subroutine
1373 or function. This includes a subroutine introduction block and
1374 blocks describing a subroutine entry point.
1375 io_module io
1376 display section titles used in info blocks describing an I/O module;
1377 or one of its setup operations open_file close_file or detach;
1378 or one of its control orders.
1379
1380
1381 :Info: xref: 2021-02-15 xref
1382
1383 Syntax: xref SEG_NAME -pcref_control_args
1384
1385
1386 Function: displays crossref items source files that reference
1387 include files found in the installation directory.
1388
1389
1390 Arguments:
1391 SEG_NAME
1392 name the segments to check. The .incl.* suffix or a more
1393 specific suffix like .incl.pl1 or .incl.alm must be given.
1394 The star convention may be used to select several segments.
1395 If SEG_NAME is not given all include segments are checked.
1396
1397
1398 Control arguments:
1399 Any control argument accepted by the peruse_crossref pcref
1400 command may be given. For a full list of controls type:
1401 help pcref -brief
1402
1403
1404 :Info: quit: q: 2020-07-27 quit q
1405
1406 Syntax: q
1407
1408
1409 Function: exits the subsystem and returns to Multics command level.
1410
1411
1412 :Info: ?: 2020-07-27 ?
1413
1414 Syntax: ?
1415
1416
1417 Function: prints a list of requests available in this subsystem.
1418
1419
1420 Notes:
1421 There may be other requests available in the subsystem which are not
1422 listed by this request. Such requests may be listed using the request:
1423 list_requests -all
1424
1425
1426 :Info: .: 2020-07-27 .
1427
1428 Syntax: .
1429
1430
1431 Function: prints the name and version of the subsystem whether
1432 abbreviation processing is enabled in the subsystem and the level of
1433 invocation of this instance of the subsystem if more than one
1434 invocation of the subsystem is active.
1435
1436
1437 Examples:
1438 mbuild mbuild__1.03 abbrev
1439
1440
1441 :Info: build_script.gi: build_script: 2022-09-06 Build Script Language
1442
1443 Notes on build script segments:
1444 A build script contains four sections:
1445 Descriptions --
1446 free-form text perhaps as bullet items briefly describing
1447 purpose of a software change to the target library.
1448 Changes --
1449 lists the original-content segments residing in that installation
1450 directory with information about an OPERATION to be performed
1451 a containing library for each object etc. Each segment is
1452 described by a statement of the Build Script Language see below.
1453
1454
1455 Information --
1456 gives attributes for the build process. mbuild maintains content
1457 of this section. It contains the following attribute name/value
1458 pairs:
1459 Phase: installing;
1460 Descriptor: >t>multics_libraries_;
1461 LogDir: >ldd>log;
1462
1463 Approve_IDs: MCR10126;
1464 Install_ID: MR12.8-1042;
1465
1466 Developers: GDixon.Multics;
1467 Auditors: GDixon.Multics
1468 Swenson.SysAdmin;
1469 Installers: Swenson.SysAdmin;
1470
1471
1472 Status --
1473 free-form text giving the developer's perspective on progress in
1474 designing coding testing and documenting the change. The
1475 developer auditor or installer may edit this section.
1476
1477
1478 Contents of the Changes -- section is described by the information
1479 below.
1480
1481
1482 Notes on changes section:
1483 The Changes -- section of the script gives instructions for creating
1484 a change or adding a new segment etc. Included steps cover:
1485 compiling source files; changing bound object source and object
1486 archives; bindfile changes to create the bound object; and installing
1487 the source bound and unbound objects include files and info
1488 segments etc. into directories of the Multics Libraries.
1489
1490
1491 The mbuild command creates an initial version of the build script
1492 segment starting with an empty Changes -- section.
1493
1494 The scan request looks for original-content segments in the build
1495 directory and guesses about where each segment fits in library
1496 directories specified in the current library descriptor. It points
1497 out new segments which don't match any existing library item. scan
1498 guesses are stored in mbuild's internal data.
1499
1500
1501 The analyze request uses scan information to associate each source
1502 with an existing bound segment in the library. For new source
1503 segments it guesses they will be compiled into a standalone object
1504 not associated with any bound segment. A new info segment is
1505 associated with the existing info directory of the current library
1506 or with an UNKNOWN.info directory if the library descriptor describes
1507 several libraries.
1508
1509
1510 When the analyze request ends it saves a Build Language Statement for
1511 each original-content segment into the Changes -- section of the
1512 build script.
1513
1514 The user may then edit the Changes -- section of the script to
1515 correct analysis errors supply unknown data specify names to be
1516 added to or removed from segments etc.
1517
1518
1519 A subsequent mbuild read request parses the edited Changes --
1520 section and loads the corrected information into mbuild's internal
1521 data.
1522
1523
1524 Overview of build script language:
1525 Each original-content segment of a build is described by a statement
1526 in the Build Script Language. Language statements are summarized
1527 below.
1528
1529 Items in braces are alternatives; only one is present in an actual
1530 statement.
1531
1532 Note that a source_arch statement is used only for a bound object
1533 having more than one source archive i.e. where source archive has a
1534 .<digit> in its name; e.g. bound_pl1_.2.s.archive.
1535
1536 An add_name or delete_name statement is not used on a Bound_obj
1537 statement; names on a bound segment are specified by statements in its
1538 bindfile.
1539
1540
1541 Changes --
1542
1543 Bound_obj : <bound-object-name> IN : <library-name> ADD | DELETE | REPLACE ;
1544 bindfile : <bind-file-name> ADD | DELETE | REPLACE ;
1545 source_arch : <bound-source-archive-name> ADD | UPDATE | REPLACE | DELETE ;
1546 source : <source-seg-name> ADD | DELETE | REPLACE <compiler-group> ;
1547
1548 Unbound_obj : <object-seg-name> IN : <library-name> ADD | DELETE | REPLACE ;
1549 source : <source-seg-name> ADD | DELETE | REPLACE <compiler-group> ;
1550
1551 Include : <include-file-name> IN : <library_name> ADD | DELETE | REPLACE ;
1552 Info : <info-seg-primary-name> IN : <library_name> ADD | DELETE | REPLACE ;
1553
1554 Seg<seg-type> : <seg-name> IN : <library_name> ADD | DELETE | REPLACE ;
1555
1556
1557 The following sub-statements may appear after the statements: Bound_obj Info
1558 add_name : <name>... ;
1559 delete_name : <name>... ;
1560
1561
1562 BNF specification of Build Script Language:
1563
1564 - <alt-1> | <alt-2> | <alt-3> identifies alternatives. Choose only one of them.
1565 <alt-1> | <alt-2> | <alt-3> ... says choose one or more of the alternatives.
1566
1567 - .... says stuff is optional. ....... says choose zero or more of this item.
1568
1569 - User commenting may or may not be supported in the actual build script files.
1570 Such comments would have to be parsed/stored by read operation to be preserved for
1571 future save operations; and mbuild would have to learn how to display them.
1572
1573
1574 ---------- ----------
1575 <script-contents> ::= <installable-item>...
1576
1577 <installable-item> ::= <bound-object-group>|<unbound-object-group>|
1578 <info-seg-group>|<include-file-group>|<unanalyzed-seg-group>
1579
1580 <bound-object-group> ::= <bound-object-stmt> <bindfile-stmt> <archive-source-group>...
1581 <archive-source-group> :: <source-stmt>|<archive-stmt> <source-stmt>...
1582
1583 <unbound-object-group> ::= <unbound-object-stmt> <source-stmt> <naming-group>...
1584
1585 <include-file-group> ::= <include-file-stmt> ;
1586
1587 <info-seg-group> ::= <info-seg-stmt> <naming-group>...
1588
1589 <unanalyzed-seg-group> ::= <unanalyzed-seg-stmt> <naming-group>... ;
1590
1591 <bound-object-stmt> ::= Bound_obj: <bound-object-name> <library> <bound-obj-operation> ;
1592 <library> ::= IN: <library-name>
1593 <bound-obj-operation> ::= ADD|UPDATE|DELETE
1594
1595 <bindfile-stmt> ::= bindfile: <bind-file-name> <library> <operation> ;
1596 <operation> ::= ADD|REPLACE|DELETE
1597
1598 <archive-stmt> ::= source_arch: <bound-source-archive-name> <library> <bound-obj-operation> ;
1599
1600 <source-stmt> ::= source: <source-seg-name> <library> <operation> <compiler-group>
1601 <compiler-group> ::= <compiler> <compile-option>... ;
1602 <compiler> ::= compiler: <compiler-name>
1603 <compile-option> ::= <control-arg>|<control-arg> <value-word>
1604
1605 <unbound-object-stmt> ::= Unbound_obj: <object-seg-primary-name> <library> <operation> ;
1606
1607 <include-file-stmt> ::= Include: <include-file-name> <library> <operation>;
1608
1609 <info-seg-stmt> ::= Info: <info-seg-primary-name> <library> <operation> ;
1610
1611 <unanalyzed-seg-stmt> ::= Seg<seg-type>: <seg-name> <operation> ;
1612
1613 <naming-group> ::= <add_name-stmt>|<delete_name-stmt>
1614 <add_name-stmt> ::= add_name: <add-seg-name>... ;
1615 <delete_name-stmt> ::= delete_name: <del-seg-name>... ;
1616
1617 <mb-script-item> ::= <mb-script-stmt>|<mb-exec_com_stmt>|<mb-log-stmt>
1618 <mb-script-stmt> ::= Build_script: <mb-seg-name>.mb ;
1619 <mb-exec_com-stmt> ::= Build_exec_com: <mb-seg-name>.mb.ec ;
1620 <mb-log-stmt> ::= Build_log: <mb-seg-name>.mb.list ;
1621
1622
1623 :hcom:
1624
1625 /****^ HISTORY COMMENTS:
1626 1 change2019-08-17GDixon, approve2019-10-25MCR10069,
1627 audit2020-01-20Swenson, install2020-01-20MR12.6g-0035:
1628 Initial documentation for mbuild subsystem. For details, see:
1629 MTB-1003 mbuild Subsystem
1630 2) change2020-01-25GDixon, approve2020-01-25MCR10079,
1631 audit2020-02-02Swenson, install2020-02-02MR12.6g-0045:
1632 A) To mbuild command, add control argument: -scan_read default
1633 B) To scan request, add control arguments: -query and -no_query
1634 C) To save request, add control argument: -description
1635 D) To analyze request, add control argument: -no_progress
1636 E) To read request, add control argument: -no_print
1637 F) To compare request, add control argument: -brief
1638 G) To set request, noting that -description now saves the new
1639 description setting to a build_script file.
1640 H) To print request, refine how -save_format works with
1641 -description and -analyze control arguments.
1642 3) change2020-02-05GDixon, approve2020-02-05MCR10079,
1643 audit2020-04-30Swenson, install2020-04-30MR12.6g-0046:
1644 A) Correct info seg formatting flaws found by validate_info_seg.
1645 4) change2020-04-20GDixon, approve2020-04-20MCR10079,
1646 audit2020-04-30Swenson, install2020-04-30MR12.6g-0046:
1647 A) Fix formatting flaws found by verify_info.
1648 B) Change documentation for set -seg request to indicate
1649 that the star convention may be used to set attributes of
1650 several Seg... structures.
1651 5) change2021-02-18GDixon, approve2021-02-18MCR10086,
1652 audit2021-03-17Swenson, install2021-03-17MR12.6g-0051:
1653 A) Change mbuild.info to correct errors found by
1654 validate_info_seg vis.
1655 B) Document the new crossref xref request for displaying source
1656 programs using include files in the current installation
1657 directory.
1658 C) Change archive_prep arch request documentation to note that
1659 archive components are sorted in alphanumeric order by
1660 component name by default. Document -no_sort -ns control
1661 which suppresses this automatic sorting.
1662 D) Add an info block describing the new xref request.
1663 E) Document the quit q, ?, and . requests which were omitted
1664 from earlier versions of this info segment.
1665 6) change2021-02-22GDixon, approve2021-02-22MCR10086,
1666 audit2021-03-31Swenson, install2021-03-31MR12.6g-0054:
1667 A) Document the new verify vi request for checking format of
1668 info segments in the installation directory.
1669 B) Change info divider tokens to use subsystem request tokens
1670 :Info: supported by verify_info and the new help_ subsystem.
1671 7) change2021-11-26GDixon, approve2021-12-07MCR10102,
1672 audit2021-12-07Swenson, install2021-12-08MR12.8-1012:
1673 A) Change info block for print request to indicate print -Seg ENTRYNAME
1674 now accepts: print -Seg STARNAME
1675 8) change2022-09-12GDixon, approve2022-09-05MCR10126,
1676 audit2022-10-12Swenson, install2022-10-12MR12.8-1042:
1677 A) Change info block for mbuild command to describe new arguments.
1678 B) Change info block for analyze request to describe auto-save of
1679 Changes -- section to build script segment.
1680 C) Change info block for the read request to describe new control
1681 arguments.
1682 D) Change info block for the print request to describe new control
1683 arguments.
1684 E) Change info block for the set request to describe new control
1685 arguments.
1686 F) Add info block for the add request.
1687 G) Change info block for the save request to remove doc for
1688 -control_args no longer supported/needed.
1689 H) Change history hcom info block to focus on differences between
1690 Multics history_comment command and the mbuild hcom request.
1691 I) Improve build_script.gi info block by removing references to
1692 old-style section title statements, and to discuss new sections
1693 supported in the build script segment.
1694 9) change2022-10-23GDixon, approve2022-10-23MCR10126a,
1695 audit2022-10-25Swenson, install2022-10-25MR12.8-1043:
1696 :Info: mbuild:
1697 mA) Correct syntax of line appended to Description -- section by
1698 the -installing -ctl_arg.
1699 mB) Correct description of -approve Approve_ID operand.
1700 mC) Correct description of -install Install_ID operand.
1701 :Info: print:
1702 pA) Document the print -phase -ctl_arg.
1703 :Info: set:
1704 sA) Correct description of -approve Approve_IDs operand.
1705 sB) Correct description of -install Install_ID operand.
1706 sC) Describe limits on number of -ctl_args allowed in each request.
1707 :Info: add:
1708 aA) Correct description of -approve Approve_IDs operand.
1709 aB) Describe limits on number of -ctl_args allowed in each request.
1710 :Info: install_ec:
1711 iA) Describe add-on line to update_seg -log input.
1712 iB) Add Examples section showing small install exec_com.
1713 :Info: build_script.gi:
1714 gA) List Attribute_Name: Value; pairs found in Information --
1715 section of build script.
1716 END HISTORY COMMENTS */