Nokia nmake Product Builder
Release Notes -- Nokia nmake lu3.3
[Table of Contents]
- 980033 - cpp directives
A "#" in the middle of a line is no longer incorrectly
interpreted as a cpp directive.
- 980035 - cpp ANSI mode token-based preprocessing error
Fixed the cpp ANSI dialect to correctly handle token-based
#define MINUS -
The conforming output should be:
i= - -j ;
cpp output was:
Note that the result is semantically different; in the traditional case
i is assigned the result of applying the prefix decrement operator
to the value of j. In the ANSI case, i is assigned the
result of applying the minus operator to the result of applying the
minus operator to the value of j.
- 990014 - cpp dumps core with a huge string constant
Fixed a bug where cpp dumped core when processing a huge string
constant. cpp would write the value of the constant to the output
buffer, but would core dump when the string was larger than the buffer.
This is fixed and cpp now correctly handles huge string constants.
- 990052 - cpp C++ output ">>" should be "> >"
Fixed a problem where cpp did not output a proper space between two
consecutive angled brackets for C++ preprocessing. This caused errors
from the C++ compiler, such as:
Error: Invalid template parameter default .
- 990067 - cpp hangs in transition mode
cpp now preprocesses correctly and no longer hangs in transition mode.
- 990072 - cpp problem with macro replacement using # operator
cpp now handles the "#" operator when preprocessing
in the ANSI dialect.
(Not available on the Amdahl UTS platform.)
- 980001 - export nmake variables to shell
see New Features: Export nmake Variables to Shell
- 980013 - output of nmake print statement is delayed
In previous releases the output of print statements would
be delayed relative to subsequent shell actions. The output
(not only print) is no longer delayed.
- 980068 - :L listing non-existent files
Under certain conditions the :L edit operator would list
files that did not exist. This happened when a file (file1) in the list
had been scanned (to compile some code) and file1 included another file
(file2) within a false #ifdef directive. In this case
:L would list file2 even though file2 did not exist. This has
- 990044 - detect corrupted .ms state files
Now issue a proper warning message and exits when an
existing state file is corrupt.
- 990069 - .SOURCE.mk does not work correctly in viewpathing
Now properly detect when the state of an included makefile
changes when using .SOURCE.mk to search for included makefiles.
- 990071 - simple and prefix include of same file leads to error
Fixed a problem that an improper -I command line argument
list is generated for the compiler resulting in the preprocessor
being unable to find an include file. The behavior was produced when
the same file was included by different source files, one using a
path prefix to the include file and another using simply the filename,
within the same makefile, and the makefile was executed more than once
for different targets in the makefile.
- 990077 - warn for missing included makefiles
If an included makefile is missing or deleted, a proper warning
message is issued . To ignore missing included makefiles
use 'include - "file.mk"' (notice the dash).
- 990083 - problem with .SYNC
The .SYNC special atom is more reliable.
- 990084 - make include expansion
see New Features: Include Makefile Expansion
- 980011 - :LINK: supports symbolic links
Set symbolic_link=1 for :LINK: to create
symbolic links, otherwise hard links are used.
- 980012 - :INSTALL: and :INSTALLDIR: not ignored
The return code of install operations are no longer ignored.
- 980030 - :COMMAND: and .FUNCTIONAL unnecessary rebuilds
In previous releases a prerequisite to a :COMMAND: or
.FUNCTIONAL assertion would cause unnecessary rebuilds.
This is no longer the case and prerequisites may be used with these
- 980044 - :cc: can't find library down the VPATH
A makefile that used :cc: to build a library and link an
executable with that library would not provide the path to the library
when updating the executable when the library existed down the VPATH.
This now works properly and the full path to the library is provided
on the command line as expected when the library is down the VPATH.
- 990006 - :MAKE: executes more makefiles than expected
:MAKE: no longer recurses to files named *.mk
when the RHS is unspecified or *. By default these cases will
only recurse to all subdirectories containing makefiles. To visit
files you may specify *.mk on the RHS.
See Changes Impacting lu3.2 Makefiles.
- 990015 - :: (double colon) recompiles .c file unexpectedly
Under certain conditions the :: operator would create
dependencies between two targets causing files to be recompiled
when nothing changed. For example, the following makefile would
make gvaS.o depend on gvaC.o and vise versa, so
compiling one would make the other out of date. This is now fixed
and the improper dependency is not created.
%S.c %C.c %.h : %.idl
idl -s S.c -c C.c -h .h $(>:B:S)
gvaS.o :: gva.idl
gvaC.o :: gva.idl
- 990064 - :LIBRARY: build output
Cleaned up build output generated from :LIBRARY: when
when checking prerequisite libraries.
- 990085 - more control of :LIBRARY: for shared libraries
see New Features: More Control of :LIBRARY: for Shared Libraries
- 990093 - :cc: synchronization of state files
The use of the :cc: operator spawns another nmake
process which results in a separate state file. In the past this
spawned nmake process did not have any knowledge of the state information
from the parent. This lack of sharing could result in files
rebuilding unexpectedly. Now the spawned :cc: process reads
the state information of the parent to prevent such behavior.
See also New Features: EXTRASTATE Engine Variable.
- 990034 - .ACCEPT not obeyed for meta-rule targets
The .ACCEPT special atom now works as expected for meta-rule
- 990050 - cyclic meta-rule causes core dump
No more core dumps when cyclic meta-rules are
encountered. Now issue an error message identifying
the cyclic meta-rules.
- 990031 - localprobe fixes: PROBE, PROBEBASE, -I-D
Set default PROBE=probe. Fixed a problem where the reference
to a local probe file may have filename truncated if the filename includes
a ".". Fixed a problem where the -I-D compile line argument,
when using localprobe=vpath, may reference the local probe file
using a relative path, however cpp, which uses the -I-D argument,
does not handle the relative path. All references were changed to use
the full path to the local probe file.
- 990032 - CC.ALTPP.FLAGS not correct for CC with invalid option
Fixed a problem that caused probe variables to be set incorrectly
when an invalid compiler option is set as part of the CC variable.
- 990033 - gcc cannot compile to file with "dynamic" in name
Some older versions of gcc fail to compile when the output filename
begins with the string "dynamic". This caused the probe variable
CC.SUFFIX.SHARED to be set incorrectly. The probe scripts now
work around this problem so the probe information is correct for these
- 990048 - core dump about probe
Under certain conditions probe would core dump when using
localprobe=vpath. This has been fixed.
- 990061 - error when processing /usr/include/dce/cma_config.h on HP-UX
A missing cpp directive from HP-UX probe files
would result in the following error when including
"/usr/include/dce/cma_config.h", line 243: read error
This has been fixed and HP-UX platforms now get
'#pragma pp:nocdir "-"' properly defined in
the pp probe file.
- 990079 - CC.AROPTS not set correctly on HP
For legacy reasons the probe variable CC.AROPTS was set
to "f" on HP-UX machines. The "f", given as an argument
to ar, caused the archive member names to be truncated to
14 characters to be compatible with older HP-UX releases. This is
no longer necessary and undesirable and has been removed from the
probe setting. Archive member names will no longer be truncated
on HP-UX machines.
- 990086 - attach comments to items in probe information file
The make probe file now contains comments for variable so users
can better understand the meaning of the probe file contents.
Also see New Features: Improvements to Probe.
- 990102 - change the default value of CC.PIC for Solaris C++ compiler
The Solaris C++ compiler treats -KPIC slightly different
than -Kpic. In some cases -Kpic is not sufficient
for compiling code and -KPIC must be used. probe now picks up
-KPIC if it is supported before -Kpic for the value
of CC.PIC. This will impact any compiler that supports both
-KPIC and -Kpic, however most compiler treat the two
- 990046 - CC.PROFILE set wrong for instrument usage
CC.PROFILE is now set correctly when using instrumentation,
such as instrument=purify.
- New engine variable EXTRASTATE -
see New Features: EXTRASTATE Engine Variable
- New engine variable MAKEEXPORT -
see New Features: Export nmake Variables to Shell
- New base rules variables sharedlibvers and
see New Features: More Control of :LIBRARY: for
- New base rules variable symbolic_link -
- 990000 - typo in .ARPROFILE
A typo (missing "$") has been corrected. Now
able to pick up libraries named such as libname_g.a
when the -g CCFLAG is used. Note that this impacts the
use of an underscore in the library name, not a dash. The search
order is libname-g.a, libname_g.a, libname.a.
- 990028 - hostinfo reports wrong number of CPUs for Solaris
The hostinfo command now uses the mpstat command
to get the correct number of processors on Solaris platforms.
- 990045 - instrument changes for Lucent C++
see New Features: Lucent C++ Instrument Support
- 990049 - extraneous output on HP-UX
The ksh supplied with current HP-UX systems caused unexpected
verbose output during install and clobber operations. This has
been worked-around so the typical output will now be displayed
when using HP's ksh.
- 990062 - update makelog package
Fixed an infrequent problem where action block tag IDs are not
recognized due to unexpectedly short tag strings (provided by
$COTEMP). Removed some tracing code to reduce run-time overhead.
- 990063 - prerequisite library specified on ar command line
When archiving a library, prerequisite libraries
in addition to the .o files on the ar command line are included.
liba.a :: a.c -lbb
+ ar r liba.a a.o libbb.a
ar: libbb.a is in archive format - embedded archives are not allowed
This fixed and namke no longer passes the prerequisite library to
- 990078 - x.c is recompiled when x.o is found in another directory
When building x.o from x.c in the current directory, and the
.SOURCE.o paths contain another x.o, the local x.c would be unnecessarily
recompiled when the viewpath was used. This has been
fixed, and the x.o found in .SOURCE.o no longer throws the
local x.o out-of-date.
- 990118 - coshell version string is wrong
The coshell version string now correctly identifies coshell.
[Table of Contents]
Last Update: Friday,12-Aug-2016 12:31:32 EDT