Home Product Info Orders Downloads About Us Contact Us
This addendum documents the changes from Make v6.11 to 6.12 and from MKMF v6.11 to MKMF v6.12. This addendum will be included in the next revision of the manual. The changes are listed in order according to where they will appear in the next manual. The page numbers are for the Make v6.10 manual.
1.4 Upgrading To Opus Make v6.12
New Features for v6.12 (p5: Add before the "New Features for v6.11")
- The new ".OPTIONS : QueueUnlimit" removes the 32-file limit from the shell-line queuing, enabling an arbitrary number of files to be queued.
- The new "SH" macro modifier executes a shell line and captures the text output into the macro.
- For Win95 and WinNT, better support of mixed-case file names. See the ".OPTIONS : TargetKeepCase" keyword.
- The new .SHELL directives .NOOPUSERRH keyword prevents our OPUSERRH "helper" utility from being called. This utility is used by Win95 Opus Make to make up for shortcomings in COMMAND.COM but is unnecessary when running 4DOS.
- The .SEARCH directive is now a true superset of the .PATH macros.
- In inline response files, "\!" can now be used to protect an initial "!" character.
- Support for Microsoft NMAKE 1.62 (as shipped with MS VC++ 5.0).
- Better detection of read-time indenting.
- Better handling of leading/trailing whitespace around continued makefile lines during PM/CB & NMAKE emulation.
- To differentiate between a drive-letter colon and a dependency colon, Make required a ":", ";", "<space>" or "<nothing>" after the colon. This requirement has been relaxed.
New Features for v6.12 (p8: Added before "New Features for v6.11")
- MKMFs startup emulation can now be set, either with command-line switches EN, EO and EP or with the SETEM utility.
- The "%exec" directive now works to execute a shell line.
- The new "SH" macro modifier executes a shell line and captures the text output.
- For Win95 and WinNT, better support of mixed-case file names. See the ".OPTIONS : TargetKeepCase" keyword.
The Dependency Line Separator ":"(p55: Replace the section with the following)
The ":" between targets and sources on a dependency line is also the character used for the drive separator in MS-DOS, OS/2, Win95 and WinNT. To distinguish this colon from the drive separator, single-letter target names must be followed by space or tab (e.g. <let>:whitespace), semicolon (e.g. <let>:;), colon (e.g. <let>::) or nothing (e.g. <let>:enter).
Although multiple-letter target names need not be followed by anything special before the ":", consistent use of at least one space before and after the ":" is suggested.
Macro Modifiers (p64: Add this heading after the "Change Case" heading)
SH Executes the entire macro value as a shell line and returns the output of the shell line. This modifier uses the last-known shell program the default shell program or the shell program as set with a .SHELL directive. The shell lines output is returned with spaces, tabs and newlines collapsed into single spaces.
Dot Directives (p118: Replace the .OPTIONS directive with the following)
.OPTIONS : [ MacroQuoted | MacroRecursiveDef | QueueUnlimit | TargetKeepCase | TargetMergeDotSlash | TargetQuoted | TargetSlashEq ] ...
Replace the "TargetKeepCase" keyword with these two keyword descriptions:
QueueUnlimit by default, Make queues the shell line from no more than 32 targets before flushing the queue and executing the shell line. With this keyword, the 32-target limit is lifted and Make queues an arbitrary number of targets.
TargetKeepCase for Win95 and WinNT Make and MKMF, causes the "A", "*", "*F" and "*D" macro modifiers and wild-card specifications on dependency lines to preserve the case of file names. By default, without this keyword, the file names are converted lower case.
Dot Directives (p119: Replace the .SEARCH directive with the following)
.SEARCH : dir_list [ file ] ...
Used to give search directories to files. The <dir_list> is a semicolon-separated list of directories. If given, each <file> is a filename or file extension. If <file> is absent, the search directories apply to all files that don't otherwise have a search directory.
Like the .PATH macros, .SEARCH can assign search directories to file extensions. Additionally, .SEARCH can assign search directories to specific files. See Page 142 for details.
Dot Directives (p120: Replace the .SHELL directive with the following)
.SHELL : [ .AUTO | .NOMULTI | .NOOPUSERRH | .NOREDIR ] ... [ program flags ]
Add the following after the "The .NOMULTI keyword..." paragraph:
The .NOOPUSERRH keyword tells Win95 Make not to use our "helper" utility OPUSERRH.EXE when executing shell lines. Use this keyword if youre using 4DOS as the shell program.
Inline Response Files (p148: Add the following point to the "The first "<<" introduces the response file." paragraph).
- A leading "!" character is interpreted in the same fashion as if it had appeared on a shell line as the first character: it is either a run-time "percent" directive (page 97) or an "iterate this shell line" shell-line prefix (page 92). To prevent these interpretations, use "\!"for a literal "!" character.
Using 4DOS (p174: Replace the paragraph with:)
4DOS is an alternative command processor for MS-DOS and Win95 written by J. P. Software. If you use 4DOS as your command processor youll probably want to use it as the shell program used by Make. Since Make automatically determines the shell program at startup by looking in the COMSPEC environment variable, and since 4DOS should be the program in that variable, Make automatically uses 4DOS when it executes a shell line through the shell program.
However, under Win95 Make does some things that are unnecessary and even slightly detrimental when 4DOS is being used because Make is written to work around short-comings in COMMAND.COM. As a consequence we recommend that for 4DOS you use the following .SHELL directive:
.SHELL : .AUTO .NOOPUSERRH $(COMSPEC) /E:1024/C
F.4 SETEM (p264: SETEM now supports MKMF)
The setem utility sets the start-up emulation mode for Make or MKMF and is useful for customizing Make as a drop-in replacement for PM/CB or NMAKE. The syntax is:
setem [ EN | EO | EP | E2 ] path_to_exe
The "EN" flag sets the start-up emulation mode to NMAKE, "EP" sets it to PM/CB, "E2" selects Opus Make v5.2x emulation, "EO" (oh, not zero) sets emulation back to the native mode. path_to_exe is the pathname of the Opus Make or MKMF executable.
If no flags are used setem reports the current start-up emulation mode.
Home Product Info Orders Downloads About Us Contact Us
Opus Software, Inc.
1032 Irving Street, Suite 439 San Francisco, CA 94122 USA
Phone: 415-485-9703 Fax: 415-485-9704 Email:biz@opussoftware.com