Home Product Info Orders Downloads About Us Contact Us
What's New
in V6.12
The following features have been added to the lastest version
of Opus Make. For details of these added features and of other
changes made to Make v6.12, please see the Addendum
for v6.12.
- The new "SH" (execute shell)
macro modifier executes the shell line defined by a macro
and returns the output of the shell line. This is
equivalent to using "%exec" on a shell line
with the output redirected into a file, then the
"@" macro modifier to read the file contents.
The "SH" modifier is better in that it handles
the redirection, file handling, and "@"
modifier for you.
- The new ".OPTIONS : QueueUnlimit" removes the 32-file limit from the shell-line
queuing, enabling an arbitrary number of targets to be
queued.
- For Win95 and WinNT, better support
of mixed-case file names. See the ".OPTIONS : TargetKeepCase" keyword.
- For Win95 new ".SHELL : .NOOPUSERRH" lets Make better support 4DOS.
- The .SEARCH directive
is now a complete superset of the .PATH.ext
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 and now these
characters are needed only when the thing before the
colon is a single letter. For example:
D:foo
is parsed as the single target "D:foo", but:
all:CLEAN
is parsed as "all depends on CLEAN".
- The ^Z on the end of some MS-DOS makefiles was not
properly handled.
- On "%set
name<op>value" lines, <op> was not properly
detected at "=",
"+=" or ":=".
- Mixing read-time "%set"
and "=" macro
definitions did not work well. "%set" macro definitions
could not be redefined with an "=" macro definition.
NAME = $$
%set NAME += $$
%echo NAME=$(NAME)
would evaluate to "NAME=$$ $"
rather than "NAME=$ $".
- For Win95 Make, "make -x
any_file" caused a SHARE error.
- In automatic response files, "/<any> <any>"
is now kept together in the response file. This is for
MSVC++, where "/D"
or "/I" on one
line followed by the argument on the next line fails in
the MSVC++ command-line parser.
- "\t" inside a
regular expression set would not match tab. Instead it
would match a literal "t".
- A target defined in MAKE.INI,
then showing up as:
<target> :
in the makefile would be reset, its shell lines forgotten.
Now, only rules are reset when they appear in this fashion
(eg. ".c.obj :").
- For NMAKE emulation, additional extensions given in the .SUFFIXES directive are added
to the end of .SUFFIXES.
- For NMAKE emulation, comment-only lines following a
continued line are ignored without stopping the continued
state. That is:
A = one \
# an ignored line
two
evaluates to:
A = one two
- For NMAKE emulation, environment variables modified in
the makefile with a macro definition were not expanding
out the right side of the macro definition. For example:
INC = xyzzy
INCLUDE = $(INCLUDE);$(INC)
x :
echo %%INCLUDE%%
would echo "<old value of
INCLUDE>;$(INC)" instead of "<old value of INCLUDE>;xyzzy".
- For NMAKE emulation, "cd dir"
is translated to a "%cd dir"
directive. However, this failed with a compound statement
"cd dir & cmd".
Now, Opus Make detects the compound statement and passes
it to the shell (as per NMAKE).
- For Win95 and WinNT, better support
of mixed-case file names. See the ".OPTIONS : TargetKeepCase" keyword.
- 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.
- The new "SH" macro modifier executes a shell line and
captures the text output into the macro.
- MKMF did not understand numbers that ended in "U" or "L".
- MKMF did not trap divide-by-zero or modulus-by-zero
errors when interpreting directives.
- Changing the .TYPE.C
regex to something that did not start with "#" did not work.
- With parameterized paths, ".."
relative paths did not work.
- #defined macros were limited to 4K bytes. This limit has
been doubled to 8K bytes.
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