Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products

Release Notes -- Nokia nmake 13

July 2011
[Table of Contents] [Previous Section] [Next Section]

3. Bug Fixes and Enhancements

3.1 Baserules

3.2 cpp

  1. No changes to cpp in this release.

3.3 Engine

  1. 030091 - metarule causes infinite loop
    Adding certain metarules would cause a loop when nmake performs metarule closure, which is the process of determining what all can be generated by chaining metarules together. nmake now detects the loop, issues a warning and breaks out of the loop. Additionally, if metarule closure takes more than 5 seconds a warning is issued so the rules may be addressed.
  2. 060045 - add -e explain output for archive targets
    Some archive targets with custom rules would rebuild with no explain message. The rebuild was in error, nmake no longer needlessly rebuilds these targets.
  3. 070043 - no explain info when target not generated
    A new explain message has been added for the case when a target is triggered because the target file does not exist -- "no file for target target".
    See also New Features and Enhancements: Additional "explain" messages.
  4. 090025 - read statement zeros file
    The nmake command read -o file VAR would open file for writing and zero out the file. The correct option is -i to open an input file for reading. The read and print commands now give errors on invalid options and do not touch the specified file in that case. The -p flag has been documented for both the read and print commands to read/print to/from a process (eg. read -p command VAR).
  5. 100001 - missing explain info
    The following explain messages have been added for targets that are forced to build with the .FORCE special atom or the force (-F) option respectively -- "target has .FORCE attribute", "target force option enabled".
    See also New Features and Enhancements: Additional "explain" messages.
  6. 100015 - solaris 10 ksh pwd avoids symbolic links
    If the current directory does not match the first viewpath node then nmake attempts to detect if it is running in a physical path that corresponds to the first viewpath node and if so nmake changes the current directory to the corresponding viewpath directory, issues a warning and continues processing the makefile. Also the current directory in spawned shell processes is initialized to the correct directory to avoid problems with the shell expanding symbolic links in the default PWD.
    For details see New Features and Enhancements: Improved support for Solaris 10 ksh.
  7. 100020 - no explain message for :cc: target
    A new explain message has been added for targets built for the :cc: operator. The :cc: operator builds its .o targets by running a sub-nmake process which is always triggered to keep the objects up to date. The sub-process has the details for why individual objects are updated. The parent nmake process issues the following explain message for :cc: targets -- "target :cc: sub-make update (see null.ms)".
    See also New Features and Enhancements: Additional "explain" messages.
  8. 100025 - core dump on :M
    A memory corruption which caused a core dump has been fixed. The problem was triggered by certain uses of the :M edit operator.

3.4 Operators

  1. 090029 - install should build :JAVA: targets by default
    The :JAVA: operator is now more consistent with the :: operator.
    • The install common action builds :JAVA: targets.
    • The all common action builds :JAVA: targets.
    • The :ALL: assertion action builds :JAVA: targets.
    • A default target is defined by :JAVA: to build the java code by default if it comes before another target in the makefile. This eliminates a source of the .dummy.java errors.
    See also New Features and Enhancements: Fixes in Java build support.
  2. 100016 - :cc: causes header scan
    Under certain conditions nmake would scan a :cc: source file for include files for the CC compiler before it is scanned for the cc compiler. In cases where the two compilers pick up different system headers a warning could be generated that the header was replaced by an older version. The extra, unnecessary file scan has been eliminated which also eliminates the bogus warning message.
  3. 100026 - jar file in java package dir causes rebuild
    A jar file inside a Java source package directory as defined with the :JAVA: operator no longer causes unnecessary rebuilds of the Java code.
    See also New Features and Enhancements: Fixes in Java build support.
  4. 110001 - remove and add jar prereq does not update jar target
    Removing a prerequisite of a :JAR: assertion from a makefile, rebuilding the jar target, and then adding the prerequisite back to the makefile correctly updates the jar target again.
    See also New Features and Enhancements: Fixes in Java build support.
  5. 110006 - JAVACLASSDEST change should rebuild class files
    Changing the value of the JAVACLASSDEST variable in a :JAVA: makefile will now update the Java dependencies and rebuild the Java code with the new class directory (110006).
    See also New Features and Enhancements: Fixes in Java build support.

3.5 Probe

  1. 100019 - CC.LD for gcc 4.x
    For some versions of the gcc/g++ compilers probe was setting CC.LD to ld instead of the compiler and CC.SHARED to -G. This could cause problems building and linking with shared libraries when using g++. Probe now correctly detects the CC.SHARED option as -shared and sets CC.LD to the compiler.

3.6 Build Log

  1. 090017 - makelog end tag not written when license check fails
    The structured build log now gets the makelog end tag (</makelog>) when the license check fails and on other unexpected errors.
  2. 100007 - include structured build log dtd in product
    The structured build log document type definition is now included in the nmake package as lib/builddata/buildlog.dtd.
  3. 100024 - capture needed explain map version in structured build log
    The new element emapver is now included in the structured build log to define the version of the explain.map file used for the build. Scripts processing a structured build log can get the required explain.map version from the log and then verify access to the same version or any later version to translate explain codes or issue a warning if only earlier versions are available. Old build logs without emapver use explain.map v1.
  4. 110004 - need special handling for certain control characters
    For structured build logs, invalid control characters which cannot be represented in XML are now mapped to an ASCII sequence representing its code value. The invalid characters are mapped to \xhh where hh is the hexadecimal value of the character.
  5. 110010 - update buildlog document for emapver
    The structured build log documentation and DTD have been updated to include the new emapver element which indicates the version of the explain.map file used in the build.
  6. 110014 - update logo in html build logs
    The Alcatel-Lucent logo used in the generated html build logs has been updated to the 2011 version.

3.7 Miscellaneous

  1. 090021 - problems with formatting of examples in man pages
    The man pages were changed to be more portable across platforms, in particular fixing issues with examples.
  2. 090031 - certify Sun Studio 12 Update 1
    Oracle Solaris Studio 12.2 has been certified with nmake 13 with no issues.
    For details see New Features and Enhancements: Certification for Oracle Solaris Studio 12 update 2.
  3. 100018 - user manuals
    The structure of the User's Guide and the Reference Manual have been reorganized for improved PDF viewing. Document page numbers are now in sync with page numbers shown by common PDF viewers.

3.8 Variables

  1. Change to variable CC.LD - see 100019.
  2. Change to variable CC.SHARED - see 100019.
  3. Change to variable JAVACLASSDEST - see 110006.

3.9 Options

  1. Change to option --explain - see 070043, 100001, 100020.

[Table of Contents] [Previous Section] [Next Section]

Last Update: Friday,12-Aug-2016 12:25:54 EDT