-
Notifications
You must be signed in to change notification settings - Fork 9
/
release_notes.sdml
executable file
·746 lines (675 loc) · 30.2 KB
/
release_notes.sdml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
<INCLUDE>(ETC_DIR:DYNAMIC_SYMBOLS.SDML)
<FRONT_MATTER>
<TITLE_PAGE>
<TITLE>(MMK Release Notes)
<ABSTRACT>(<REFERENCE>(RELMONTH))
<P>
This file contains the release notes for the MMK Make Utility
<REFERENCE>(VER). It describes any features, restrictions, changes,
or additions made to MMK in this release, and includes information
that is not provided elsewhere in the MMK manual.
<ENDABSTRACT>
<REVISION_INFO>(This is a new manual.)
<REVISION_INFO>(Operating System and Version:\OpenVMS VAX V6.2 or later)
<REVISION_INFO>(\OpenVMS Alpha V6.2 or later)
<REVISION_INFO>(\OpenVMS Industry Standard 64 V8.2 or later)
<REVISION_INFO>(Software Version:\MMK <REFERENCE>(VER))
<ENDTITLE_PAGE>(Endless Software Solutions<LINE>Perth, Western Australia)
<INCLUDE>(SRC_DIR:COPYRIGHT.SDML)
<CONTENTS_FILE>
<ENDFRONT_MATTER>
<CHAPTER>(Installation Notes)
<P>
This chapter contains items of interest pertaining to the installation
of MMK.
<CHAPTER>(New Features and Changes in MMK V5.1-3)
<P>
This chapter notes the changes that were made in MMK V5.1-2 and V5.1-1.
<HEAD1>(Support for OpenVMS X86_64)
<P>MMK V5.1-1 added support for OpenVMS X86_64.
<HEAD1>(Fixed builtin symbol bug)
<P>
MMK V5.1-2 changes on OpenVMS X86_64: the builtin symbol MMSIA64 is no longer
defined, and the builtin symbol MMSX86_64 is now defined.
<HEAD1>(Fix long command line support for VAX)
<P>
MMK now properly handles DCL command lines longer than 255 characters on VAX.
Such lines are broken up into continuation lines that are passed to the
worker subprocess. The code was there in previous versions, but the limit
was defined incorrectly, so the continuation lines were 257 characters long,
which was two characters too long for VAX.
<CHAPTER>(New Features and Changes in MMK V5.1)
<P>
This chapter notes the changes that were made in MMK V5.1.
<HEAD1>(New builtin macros)
<P>This release of MMK includes the following new builtin macros.
<LIST>(UNNUMBERED)
<LE>MMSSUFFIXES
<ENDLIST>
<HEAD1>(Extended Suffix List Manipulation)
<P>This release now includes support for the MMS suffix manipulation
directives listed in <reference>(sfxdir).
<table>(New Suffix List Directives\sfxdir)
<table_setup>(2\10)
<table_heads>(Directive\Description)
<table_row>(.SUFFIXES_BEFORE\Inserts a list of file types in the suffixes
precedence list before the specified first
file type)
<table_row>(.SUFFIXES_AFTER\Inserts a list of file types in the suffixes
precedence list after the specified first
file type.)
<table_row>(.SUFFIXES_DELETE\Removes a list of files types from the suffix
precedence list.)
<endtable>
<note>
These directives will produce informational messages, similar to MMS, for
instances where suffixes already exist or are missing (in the case of the
first argument to .SUFFIXES_BEFORE and .SUFFIXES_AFTER). However, the usual
behaviour of silently adding existing suffixes when using .SUFFIXES is
retained.
<endnote>
<CHAPTER>(New Features and Changes in MMK V5.0)
<P>
This chapter notes the changes that were made in MMK V5.0, release
07-MAR-2013.
<HEAD1>(Name Change)
<P>MadGoat Make has been renamed back to MMK, now that MadGoat
has ceased to exist and turned MMK over to the open source
community.
<HEAD1>(New builtin macros)
<P>This release of MMK includes the following builtin macros to
return MMK to feature parity with MMS.
<LIST>(UNNUMBERED)
<LE>MMSTARGETS
<LE>MMSDESCRIPTION_FILE
<ENDLIST>
<HEAD1>(Development and Support)
<P>The last release of MMK from MadGoat was released under a BSD-style
open source license. In support of this MMK has been moved to the
github repository:
<INTERACTIVE>
http://github.com/endlesssoftware/mmk
<ENDINTERACTIVE>
<P>Now that MadGoat has ceased operation Endless Software Solutions has
taken over stweardship of this software and continued to provide
updated releases and maintain a user community.
<P>If you are using MMK in a commercial environment and are interested
in seeing more features, a higher level of support and response and
the continued general improvement of the product, then you or your
business might like to consider a support contract with Endless Software
Solutions. For further information regarding support and how to obtain
a quote, please follow your browser to:
<INTERACTIVE>
http://www.endlesssoftwares.com.au
<ENDINTERACTIVE>
<P>For all other queries, please consider joining the MMK mailing list by
sending a mail containg only the word SUBSCRIBE to:
<INTERACTIVE>
MMK-List-request@endlesssoftware.com.au
<ENDINTERACTIVE>
<P>Alternatively, you can submit bug/enchancement/etc. reports to the github
Issues tracking system for this project.
<HEAD1>(Macro Assignment)
<P>This release includes support for the following macro assignment operators,
borrowed from BSD and GNU make:
<LIST>(UNNUMBERED)
<LE>+= - concatenate to existing macro definition;
<LE>?= - assign only if macro is undefined;
<LE>|= - assign output from a command line; and
<LE>~= - immediate evaluation assignment.
<ENDLIST>
<HEAD1>(New Else-If Directive)
<P>MMK now supports the .ELSIF directive, also available in DEC/MMS.
<HEAD1>(New Comparison Operators)
<P>For a long time the MMK .IFDEF and .IF directives were quite restricted.
This is nolonger the case with the following comparison tests been added to
MMK.
<TABLE>
<TABLE_ATTRIBUTES>(SINGLE_SPACED)
<TABLE_SETUP>(2\30)
<TABLE_HEADS>(MMS Operator\MMK Operator)
<TABLE_ROW>(.AND\AND)
<TABLE_ROW>(.EQ\EQL)
<TABLE_ROW>(.GE\GEQ)
<TABLE_ROW>(.GT\GTR)
<TABLE_ROW>(.LE\LEQ)
<TABLE_ROW>(.LT\LSS)
<TABLE_ROW>(.NE\NEQ)
<TABLE_ROW>(.NOT\NOT)
<TABLE_ROW>(.OR\OR)
<ENDTABLE>
<P>Although there is MMK-specific syntax, the MMK software supports both
MMK and MMS forms.
<HEAD1>(GNU Conditionals)
<P>MMK Now supports the use of GNU Make-style conditionals.
<HEAD1>(Case Sensitive Output)
<P>A patch by Kris G.G. Clippeleyr has been included that allows output
file names to be mixed-case.
<HEAD1>(New Builtin Function Support)
<P>This release of MMK now includes support for builtin functions, a feature
that has been missing for some time. The following tables list all the
functions currently supported. Please see the User Guide for further details
on their use.
<TABLE>
<TABLE_ATTRIBUTES>(SINGLE_SPACED)
<TABLE_SETUP>(4\20\20\20)
<TABLE_ROW>(ADDPREFIX\ADDSUFFIX\AND\BASENAME)
<TABLE_ROW>(CALL\COLLAPSE\DIR\DIRECTORY)
<TABLE_ROW>(ERROR\FILENAME\FILETYPE\FILEVERSION)
<TABLE_ROW>(FILTER\FILTER-OUT\FINDSTRING\FIRSTWORD)
<TABLE_ROW>(FOREACH\JOIN\IF\INFO)
<TABLE_ROW>(LASTWORD\NOTDIR\OR\ORIGIN)
<TABLE_ROW>(PATSUBST\SORT\STRIP\SUBST)
<TABLE_ROW>(WARN\WARNING\WILDCARD\WORD)
<TABLE_ROW>(WORDLIST\WORDS\\)
<ENDTABLE>
<HEAD1>(Description File Debugging Feature)
<P>MMK now supports using the ALL keyword with the /VERIFY qualifier. This
new keyword forces all action lines to be verified, even those prefixed
with @. This qualifier also overrides the .SILENT directive.
<HEAD1>(INCLUDE directive fixes)
<P>It was reported that the INCLUDE directive was not parsing correctly.
MMK was interpreting (incorrectly) the following example as an INCLUDE
directive, rather than an assignment.
<interactive>
INCLUDE = text
<endinteractive>
<HEAD1>(Packaging)
<P>The MMK software package is now shipped in binary form (as well as source)
in both VMSINSTAL and POLYCENTER Sotware Installation (PCSI) kits.
<CHAPTER>(New Features and Changes in MMX V4.0)
<P>
This chapter notes the changes that were made in MMK V4.0, released
02-MAR-2008.
<LIST>(UNNUMBERED)
<LE>Now released under BSD-style open source license.
<LE>Kit is now source-only.
<LE>Inference rules now default to requiring a match on the
base name to be applied, in line with MMS behavior.
<LE>When using CMS, makefiles are compared to their
corresponding elements in the CMS repository, and
the CMS version is fetched if newer. In previous
versions, makefiles were only fetched from CMS if
they did not exist in the working build directory.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V3.9)
<P>
This chapter notes the changes that were made in MMK V3.9
and its minor releases, produced between 20-JAN-2001 and
07-NOV-2004.
<LIST>(UNNUMBERED)
<LE>Some corrections to the IA64 build support.
<LE>Another fix for recursive rule handling, which
was not correctly inferring a rule for an
intermediate target (source file existence was
required).
<NOTE>
Currently, MMK applies an inference rule
based only on suffixes and prefixes, without
checking that the base name of the source and
target files match. This behavior is different
from MMS, and will probably be changed in a
future version of MMK.
<ENDNOTE>
<LE>Integrated changes to get MMK to build and run
on IA64 systems, courtesy of Dan O'Reilly and
Hunter Goatley.
<LE>Fix some issues with MMK's definition of CMS$LIB in
the subprocess.
<LE>Further fixes for recursive rule handling that caused
"missing" sources to be filled in with CMS files even
if /CMS wasn't specified, as well as when a rule
matched a source/target pair in a dependency, but
the base name didn't match.
<LE>Fix a parsing problem when a semicolon appeared
in a target object name.
<LE>Fix a problem with the subprocess manager's handling
of mailbox write-attention ASTs that caused looping
on VMS V7.3-1.
<LE>Fixed another problem in recursive rule handling
which was causing it to try to fill in missing
sources when there was a mismatch between device and
directory prefixes, but a base name match, in
an explicit dependency.
<LE>Second attempt at making double-colon dependencies
work like MMS. If multiple double-colon dependencies
are present which don't have any commands attached to
them, treat them as if they were a single dependency,
just attaching the source list to the first one.
<LE>Also fixed some missing cases where duplicate source
object references weren't being eliminated.
<LE>Inference rules were not being correctly applied
to double-colon dependencies.
<LE>Fixed an ACCVIO that occurred when using /MACRO to
load a macro file.
<LE>Fixed further problems with the recursive rule
handling, which was causing it to fill in missing
sources even when a dependency's source list was
sufficiently specified.
<LE>Fixed problem with the new recursive rule handling
and prefixed rules. From Chuck Lane.
<LE>Added built-in macros MMS$ARCH_NAME, MMSARCH_NAME,
MMSALPHA, and MMSVAX, for MMS compatibility.
<LE>Fixed problem with comma-separated target names getting
concatenated.
<LE>Fix another behavior difference between MMK and other
make utilities by recursing through dependencies and
implicit rules when doing suffix-based matching. From
Chuck Lane.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V3.8)
<P>
This chapter notes the changes that were made in MMK V3.8
and its minor releases, produced between 28-DEC-1998 and
03-MAY-2003.
<LIST>(UNNUMBERED)
<LE>Open /OUTPUT files with sharing, so you can view them while
they are being written.
<LE>Allow dots in symbol names, for improved compatibility with
UNIX makes.
<LE>Fixed problem parsing blank-separated targets.
<LE>Fixed problem where command verification to file would truncate
command line to 256 bytes.
<LE>Fixed bug in handling of long command line elements.
<LE>Fixed bug in subprocess handler.
<LE>Fixed declaration of sys$setddir() to be compatible with
newer versions of STARLET that include that declaration.
<LE>Added support for .IFNDEF directive.
<LE>Fixed problem with file I/O routines' handling of stream-LF
files.
<LE>Consolidated function prototypes into the main MMK header file.
<LE>Added built-in MMK_VERSION, MMK_MAJOR_VERSION, and MMK_MINOR_VERSION
macros.
<LE>Added support for multiple CMS libraries.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V3.7)
<P>
This chapter notes the changes that were made in MMK V3.7,
released 06-JUN-1998.
<LIST>(UNNUMBERED)
<LE>Add /WORKING_DIRECTORY qualifier to cause MMK to change
its working directory before processing any rules or
makefiles.
<LE>Add more general string substitution function for variable
references.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V3.6)
<P>
This chapter notes the changes that were made in MMK V3.6
and its minor releases, produced between 15-FEB-1997 and
20-JUN-1997.
<LIST>(UNNUMBERED)
<LE>Silently ignore null object references in a dependency or
a library module list, even when they are comma-separated,
for compatibility with MMS.
<LE>Add built-in inference rule for .MAR.MLB that matches that
for .MAC.MLB, for compatibility with MMS.
<LE>Set the DCL symbol MMS$STATUS to the resulting status for each
executed command, just like MMS does.
<LE>Fixed resolution of $(symbol:sfx1=sfx2) references when symbol
value contained directory references.
<LE>Add "<LITERAL>(<)" and "<LITERAL>(>)" options to inference
rule action lines, which force
their execution before and after, respectively, the execution of
other actions, even when a dependency includes an explicit action.
This was added mainly so we can define DECC$SHR before the invocation
of the DEC C compiler, for building C modules against versions of VMS
other than the version currently installed on the system (which would
be easier if Digital had provided a qualifier to CC that would let us
specify which shareable it searches, but that's the way it goes).
<LE>Define the MMS$CMS_GEN local symbol even when there is no CMS element
involved in an action. This is convenient for doing bulk CMS fetches
on generic dependencies.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V3.5)
<P>
This chapter notes the changes that were made in MMK V3.5,
released 22-AUG-1996.
<LIST>(UNNUMBERED)
<LE>Add ability to specify library on /CMS qualifier.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V3.4)
<P>
This chapter notes the changes that were made in MMK V3.4
and its minor releases, produced between 21-JUN-1995 and
29-MAY-1996.
<LIST>(UNNUMBERED)
<LE>Added a special hack to PARSE_OBJECTS so it recognizes library module
names beginning with dots (which is legal for macro libraries).
<LE>Fixed up ${} notation so it works when it appears more than once in
a line.
<LE>Added support for INCLUDE directive without the leading dot, like MMS
allows. Note that with this change, you cannot have a generic target
called "INCLUDE" -- the parser will interpret it as a directive rather
than a target. This, too, is consistent with MMS.
<LE>Fixed comment-stripping routine in READDESC module. Could have led
to unusual things happening when comment character was first character
on line.
<LE>Fixed MMS discrepancy regarding use of generic (non-prefixed) inference
rules with targets that have explicit device/directory specifications.
We now work like MMS does and check the target's directory for the source
file, rather than just the current directory.
<LE>Fixed library cache so that it doesn't open more than the allowed
maximum number of libraries.
<LE>Fixed some more cases of using malloc() and free() incorrectly, in
PARSE_DESCRIP.C, and FILEIO.C, any or all of which could cause ACCVIOs.
<LE>Fixed error paths in SP_MGR module that were using free() when they
should have used LIB$FREE_VM().
<LE>Fixed logic problem resolution of embedded symbol references (as in
"$(sym1$(sym2))" or "$(sym1:blah=$(sym2))" and so forth).
<LE>Fixed problem in parsing target file specifications with filenames longer
than 32 characters (parser was truncating name at 32).
<LE>Fixed bug in handling of continuations. Don't know why this didn't bite
me a long time ago!
<LE>Fixed potential for ACCVIO through negative index in array in
Read_Description.
<LE>Fixed another problem with /SKIP_INTERMEDIATES processing, this time
of files that are intermediates in some dependencies and non-intermediates
in others.
<LE>Fixed get_rdt() routine so it sets an object's have_rdt flag when it
successfully gets an RDT.
<LE>Changed object tree manager's node comparison routine to provide more
ordered list. Some duplicate nodes were getting created. This never
revealed itself until /SKIP_INTERMEDIATES came along.
<LE>Fixed file I/O routines so they would properly clean up after RMS if
one is using search list logical names.
<LE>Fixed automatic CMS fetch of description files so that it works even if
you specify /DESCRIPTION. Also fixed it so it uses the generation
specified with /GENERATION, if present.
<LE>Fixed ACCVIO when an action line is not preceded by a dependency or rule.
<LE>Added support for specifying file names on the /MACRO qualifier.
<LE>Added support for the /CHECK_STATUS, /OVERRIDE, and /SKIP_INTERMEDIATES
qualifiers.
<LE>Renamed MMK to "MadGoat Make Utilty".
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V3.3)
<P>
This chapter notes the changes that were made in MMK V3.3
and its minor releases, produced between 29-DEC-1994 and
19-JUN-1995.
<LIST>(UNNUMBERED)
<LE>Fixed automatic finding of sources so that it only occurs when there
are no explicit action lines for a particular target.
<LE>Fixed CMS date/time comparisions so that the default generation specified
with the MMK/GENERATION qualifier is used when no explicit generation is
given for an element.
<LE>Fix for automatic prefixing of library modules.
<LE>Speed up CMS library access by disabling library verification.
<LE>Change .IFDEF handling so it matches MMS -- a symbol defined to a
null value is considered "undefined".
<LE>Reduced size of mailboxes used for IPC to more reasonable amounts for
people having default buffer quotas.
<LE>Changed echoing of action lines so that if /OUTPUT= is specified they
get echoed with a "$" prefixed (unless they already begin with a "$"),
just like MMS does. Also changed definition of MMSQUALIFIERS symbol
so if /OUTPUT= is specified, "/OUTPUT=SYS$OUTPUT:" is passed to the
subprocess invocation of MMK. Thanks once again to Pat Rankin for
the suggestion for this.
<LE>Fixed handling of $(MMS) in action lines so they really do get executed
even if /NOACTION is specified. I thought that worked, but I didn't
get it right the first time.
<LE>Fixed problem where a .FIRST or .LAST directive immediately following
a dependency containing no action lines would have the .FIRST/.LAST
action lines transferred to the dependency.
<LE>Fixed MULACTION error that would happen when an explicit dependency for
a library module was included in a description file. Implicit dependencies
for library modules that are targets are now processed after the description
file.
<LE>Fixed problem with commands containing quoted strings being split in
the middle of the quoted string, which is not valid in DCL.
<LE>Add description file name and line number to information displayed
when signalling a parsing error.
<LE>Add /GENERATION qualifier to allow for setting the desired default
CMS generation when fetching stuff out of CMS.
<LE>Allow for multiple single-colon dependencies for one target, as long
as only one of the dependencies has an action list -- just like MMS does.
<LE>Add deferred macro resolution syntax, ${name}, for macro definitions.
<LE>Add .IF directive.
<LE>Make the action-line subprocess wrapper commands a bit more robust
(thanks to Pat Rankin @ Caltech).
<LE>Fixed a bug in the sp_send() routine (thanks again to Pat Rankin)
<LE>Fixed a bug in the parsing and printing (with /DUMP) of double-colon
dependencies.
<LE>Fixed the parser so comments with leading blanks are treated as null
lines.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V3.2)
<P>
This chapter notes the changes that were made in MMK V3.2
and its minor releases, produced between 22-JUL-1994 and
18-OCT-1994.
<LIST>(UNNUMBERED)
<LE>Fix bug in PARSE_DESCRIP where line was getting freed, _then_ being
used as an argument to lib$signal(). Thanks to Craig Ryan for pointing
this out.
<LE>Fix problem where the inclusion of an explicit dependency for a library
module would confuse MMK (which was trying to bypass the library module
reference and make the object file dependent on itself).
<LE>Eliminate all the KILL_INTERMEDIATES code which was previously #ifdef'd
out, because with this fix it won't work any more.
<LE>Suffix list wasn't getting converted to upper case like it was supposed
to, so file names weren't matching.
<LE>Move the definition of the MMS macro so that it's in effect before
the description file is read in.
<LE>Improvements in inference rules and cross-directory build support:
<LIST>(UNNUMBERED)
<LE>added support for inference rules containing device/directory
prefixes (like Microsoft's NMAKE)
<LE>Internally-generated dependencies for library modules now have
the library module's corresponding object files inheriting the
device/directory spec from the library file, rather than assuming
the current directory.
<ENDLIST>
<LE>Improved inference rule processing support for CMS. Now, if an object
depends on a source that doesn't exist but is in a CMS library, MMK will
see that and automatically generate a dependency so that the file will
be fetched out of CMS.
<LE>Added the /DUMP qualifier to have all symbols, prefixes, rules, and
dependencies printed out before MMK begins the build process.
<LE>Added the MMS$TARGET_FNAME predefined macro for use in action lines.
The macro resolves to just the file name portion of the target file
specification (unlike MMS$TARGET_NAME, which includes the device
and directory as well).
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V3.1)
<P>
This chapter notes the changes that were made in MMK V3.1,
released 12-JUL-1994.
<LIST>(UNNUMBERED)
<LE>Fixed a bug in .DEFAULT directive handling.
<LE>Fixed .SUFFIXES directive so it doesn't require a colon.
<LE>Fixed .xxx.xxx rule parsing so it doesn't require a blank before the colon.
<LE>Fixed .IFDEF/.ELSE/.ENDIF so that lines that shouldn't be processed don't
even get parsed.
<LE>Added support for double-colon dependencies.
<LE>Changed behavior of /NORULES so it doesn't even map in the default rules,
just like MMS.
<LE>Added code to detect circular dependencies.
<LE>Added a check after an update is performed that notifies the user whether
or not the actions executed really updated the target or not.
<ENDLIST>
<NOTE>
Thanks to Neil Readwin for supplying the description files that
pointed out the differences between MMK and MMS for most of these.
<ENDNOTE>
<CHAPTER>(New Features and Changes in MMX V3.0)
<P>
This chapter notes the changes that were made in MMK V3.0
and its minor releases, produced between 05-JUL-1994 and
06-JUL-1994.
<LIST>(UNNUMBERED)
<LE>Fixed a bug in the RDT comparison code.
<LE>Fixed a bug in how CMS was being called.
<LE>Fixed another syntax discrepancy with MMS where ".sfx.sfx :" was OK but
just plain ".sfx.sfx" wasn't.
<LE>Added file name to the default file specifications used when opening
the description files.
<LE>Added support for using DEC/CMS with MMK. It works like it does with
MMS -- use /CMS to have the CMS rules tried automatically, or, if you
need to, use explicit dependencies with a tilde attached to the suffix
to have the file referenced out of the CMS library. You can specify
the CMS library directory and the /GENERATION= qualifier when using
explicity dependencies, too, just like in MMS. MMK will also automatically
fetch your DESCRIP.MMS file out of CMS if you specify /CMS, just like MMS.
<NOTE>
PLEASE NOTE that MMK will run just fine on systems without CMS. The
CMS routines MMK uses are mapped in at run-time, just as MMS does.
You don't need to re-link MMK if you install or remove CMS from your
system.
<ENDNOTE>
<LE>If an action is taken to update a target, the revision date MMK uses
for the target object is now the current date/time stamp, instead of
the actual revision date of the target. This is to be more compatible
with MMS. It also makes more sense with CMS -- it's weird to see MMK
fetch a source file out of CMS then not compile it because the revision
date/time of the source file is still older than the object file.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V2.6)
<P>
This chapter notes the changes that were made in MMK V2.6,
released 29-JUN-1994.
<LIST>(UNNUMBERED)
<LE>Changed the way data is sent to the subprocess so that now you can
run programs like TEX (which does character-at-a-time I/O) without
hanging anything.
<LE>Fixed discrepancy between MMK and MMS syntax which allows LIBRARY(MODULE)
as a target for a dependency and automatically infers the dependency
as applying to the file on which the library module depends.
<LE>Fixed misplaced break statement in needs_updating() which was preventing
proper search of source lists when looking for a built-in rule.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V2.5)
<P>
This chapter notes the changes that were made in MMK V2.5,
released 21-JUN-1994.
<LIST>(UNNUMBERED)
<LE>Added support for specifying multiple targets on the command line
(thanks to Richard Levitte).
<LE>Fixed a parsing bug where blank following last "module=filename" pair
inside a library specifcation resulted in an extra null module being
added to the dependency list.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V2.4)
<P>
This chapter notes the changes that were made in MMK V2.4
and its minor releases, produced between 12-DEC-1993 and
06-MAY-1994.
<LIST>(UNNUMBERED)
<LE>Include all commands, even @-prefixed ones, in the verify output when
/NOACTION is specified, just like MMS does. This allows you to use
/NOACTION/OUTPUT=filename to build a command procedure that contains
all the commands used to build the target.
<LE>Several further minor bug fixes.
<LE>Changed the default rules to make them more like those in
MMS. There was a subtle difference in the way the compiler
flag strings were listed.
<LE>Fix parsing of space-separated targets on dependency lines.
<LE>More action-line symbol problems. Fixed things so that for build
rules, symbol resolution is deferred.
<LE>Fixed /MACRO=symbol so it defines the symbol; previously, symbols would
only be defined if you used "symbol=value".
<LE>Fixed MMS$TARGET_NAME definition so it works even on generic targets.
<LE>Fix problem where symbols weren't getting resolved on action lines
during description parsing.
<LE>Fix problem in Resolve_Symbols where a symbol to remain unresolved
was actually a special (like "$@").
<LE>Fixed handling of @- and -@ on action lines.
<LE>Added support for the $(MMS) and $(MMSQUALIFIERS) macros.
<NOTE>
for $(MMS) to work properly, you must be using "MMK" as the command
to invoke MMK.
<ENDNOTE>
<LE>Added support for cumulative dependencies. A target may now be specified
in more than one dependency rule IF only one of the dependency rules
contains a set of actions. The other source dependencies are simply
added to the list.
<LE>Updated documentation to reflect requirement for VMS V5.2 or later.
I forgot that the !AZ $FAO directive does not work correctly under
VMS V5.0 and V5.1.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V2.3)
<P>
This chapter notes the changes that were made in MMK V2.3
and its minor releases, produced between 20-OCT-1993 and
09-DEC-1993.
<LIST>(UNNUMBERED)
<LE>Fix extract_name to use $FILESCAN so that names are extracted properly
even when full file specs are used.
<LE>Fix Resolve_Symbols so that $(CFILES:.c=$(OBJ)) is acceptable
syntax.
<LE>Backed out code that does automatic deletion of intermediate
files until I can figure out a clean way to deal with multiple
library references.
<LE>The /IGNORE qualifier setting was not honored when perform_update
executed an implied rule.
<LE>A target specified on the command line is now parsed as an object name,
so that library modules can be specified (for consistency with MMS).
<LE>Fix looping in recursive symbol references (i.e., make them non-recursive).
<LE>Fix definition of command-line symbols that have names that match symbols
in other tables.
<LE>Fix .SUFFIXES directive so it only clears the suffixes list when the
right hand side is blank.
<LE>MMK would ACCVIO if a description file had just blanks or tabs on it.
<LE>When modules in multiple libraries depended upon the same intermediate
file, MMK would get confused. MMK now correctly handles this, and deletes
the intermediate (if it is built by MMK) after all replacements in libraries.
<LE>The parser was not correctly handling targets with no sources.
<LE>Added CTRL/T support. MMK will now report the process information
of its subprocess if you press CTRL/T while the subprocess is
executing an action line.
<LE>KNOWN PROBLEM:
The automatic deletion of intermediate object files might not happen
under some circumstances. Specifically, if an object file is a module
in more than one object library, and only a subset of those libraries is
actually built in a single MMK session, then the object file won't be
deleted.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V2.2)
<P>
This chapter notes the changes that were made in MMK V2.2
and its minor releases, produced between 17-OCT-1993 and
19-OCT-1993.
<LIST>(UNNUMBERED)
<LE>Fixed parsing of leading "@" and "-" on action lines to correspond with
MMS's parsing rules.
<LE>Eliminated need to keep intermediate files around for library modules.
Revision date checks are made directly against the library module, rather
than the intermediate file, and intermediate files are automatically deleted
after library modules have been replaced. (This is primarily for object
libraries, but applies to other libraries as well.)
<LE>Added /KEEP_INTERMEDIATES qualifer to prevent the deletion of library
modules' intermediate files.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V2.1)
<P>
This chapter notes the changes that were made in MMK V2.1,
released 17-OCT-1993.
<LIST>(UNNUMBERED)
<LE>Added support for $(var:oldsfx=newsfx) notation in variable references.
<LE>Added support for blank as module name separator in library references.
<LE>Added module identifiers to all C modules.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V2.0)
<P>
This chapter notes the changes that were made in MMK V2.0
and its minor releases, produced between 18-SEP-1993 and
27-SEP-1993.
<LIST>(UNNUMBERED)
<LE>Retracted the shared opens added in -2, -3.
<LE>Changed the default rules so that tests for library presence are
not silenced (so it's more like MMS).
<LE>Fixed the implied-.OLB code introduced in -2 so it works better.
<LE>Have the file RDT fetch routine do shared opens.
<LE>Fix parser so that FILENAME(modules) notation implies .OLB suffix (like MMS).
<LE>Open /OUTPUT= files for shared write.
<LE>Fix /FROM_SOURCES problem where intermediate targets would get
repeatedly updated when they weren't supposed to.
<LE>Prepare for first public release. Rename program to MMK.
<ENDLIST>
<CHAPTER>(New Features and Changes in MMX V1.0)
<P>
This chapter notes the changes that were made in MMK V1.0,
released 20-AUG-1992.
<LIST>(UNNUMBERED)
<LE>Initial coding.
<ENDLIST>