Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products

Release Notes -- Nokia nmake 14

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

3. Detailed List of Changes

3.1 Baserules

  1. 060003 - false positive on quoteinclude, prefix
    The quoteinclude feature with the prefix option identifies include files that inherit a directory prefix (eg. dir/file.h) from their parent when the include directive uses quotes. When using this feature a bogus warning would be issued when a header was included twice, once from a prefixed header outside the viewpath and once from a non-prefixed header inside the viewpath. No warning should be issued since the parent header inside the viewpath was not included with a directory prefix and warnings are limited to files in the viewpath. This issue has been fixed.
  2. 110002 - prefixinclude breaks ../ includes
    Under certain conditions when using the quoteinclude feature, which is generally on by default, nmake would fail to properly locate an include file that is included with a "../" directory prefix (eg. ../dir/file.h). This issue has been fixed.

3.2 cpp

  1. No changes to cpp in this release.

3.3 Engine

  1. 040041 - ../ in .SOURCE causes panic with :cc:
    Fixed a panic error that could occur in an incremental build when a directory with a trailing slash (eg. dir/) was used as a search directory in a .SOURCE search atom and with the :cc: operator in the same makefile.
  2. 050044 - core dump from corrupted rule - engine
    A core dump was fixed where in rare cases the automatic variable $(&) used in an assertion operator was expanded out of context when the operator was parsed. The variable now expands to null in this case and a level 10 debug message was added.
  3. 090005 - unnecessary rebuilds from LDFLAGS repeating
    The debug trace was enhanced to indicate when an action is triggered during makefile compile time. Since variables in such actions are expanded and compiled into the .mo file (aka frozen) this makes it easier to identify such variables when debugging a makefile for unexpected results.
  4. 090006 - :LINK: always re-links once
    Targets with the .ACCEPT attribute no longer rebuild when their file's time stamp does not change or changes backward. The behavior is now consistent with when the time stamp is changed forward. This fixes the :LINK: operator so targets are not relinked unconditionally on the second build.
  5. 090023 - nmake panic error
    Fixed a panic error caused under certain conditions when a directory is identified as a prerequisite to a target and the directory is removed and created again by some rule.
  6. 100022 - panic error making directory targets using concurrency
    Fixed a panic error caused under certain conditions when a directory (eg. dir1) and its sub-directory (eg. dir1/dir2) are both targets in a makefile and made using concurrency.
  7. 110000 - makefile rebuilds once
    An unnecessary rebuild was sometimes triggered under certain conditions when the same header was included by two source files in the same makefile, with the first source file using #include <file.h> and the second source file using the full path #include "/full/path/file.h". This has been fixed and the unnecessary rebuild is no longer triggered.
  8. 110017 - memory fault
    Fixed a memory fault that could occur when building under a symbolic link and the linked path was shorter than the physical path.
  9. 110020 - panic from dir/:L with :INSTALLDIR: and :cc:
    Fixed a panic error that could occur in an incremental build when a directory is specified with a trailing slash (eg. dir/) and the directory is used in such a way that it is scanned while the makefile is still being parsed.
  10. 110034 - prerequisite missing on second build
    In some rare cases when a file was bound before the makefile is compiled, such as for an included makefile, and the same file is also a target in the makefile with one or more prerequisites, the prerequisites could be saved in the compiled makefile (.mo file) in the wrong order causing the prerequisite lists for some targets in subsequent builds to be incorrect. This problem has been fixed.
  11. 110035 - cyclic metarule error message
    Fixed the error message for cyclic meta-rules where the meta-rule cycle could be identified incorrectly when long meta-rule patterns were used or on 64-bit platforms.
  12. 120002 - improve error handling of large file prereqs
    An appropriate warning message is now issued when a file cannot be opened due to the EFBIG or EOVERFLOW system errors.

3.4 Operators

  1. 120000 - not setting --javaversion
    The --javaversion option is now passed to Javadeps when using Java 1.5 or later. Previously the option was not specified for releases later than Java 1.5 causing Javadeps to default to using Java 1.4 style class names for the dependencies.

3.5 Probe

  1. 110012 - nmake does not find #include <new> for g++ 4.4.6+
    Improved detection of C++ standard include directories. This fixes an issue on some Linux systems where the C++ include directories were not being searched.
  2. 110030 - bad probe results for 32-bit gcc on 64-bit linux
    The probe scripts were adding /bin and /usr/bin to the front of the PATH. When probing compilers in non-standard locations this caused some compiler tools to be picked up in these directories, effectively overriding corresponding tools in the compiler's installation area, which could lead to incorrect probe results. This is fixed and the probe scripts no longer modify the PATH.

3.6 Build Log

  1. 110022 - default icon and css files not updated
    Fixed a problem where the icon.gif and buildlog.css files in the build log directory failed to update when the default files changed. Added the new -i option to buildlog2html to be used to suppress any attempt to update the icon and css files.
  2. 110023 - missing makelog end-tag for oldmake builds
    When using xmakelog to generate an XML build log, the closing </makelog> tag is now included in the log when nmake launches /bin/make (or OLDMAKE if defined) to process a makefile. When using gnu style recurse messages the closing recurse message is now also issued for such makefiles.
  3. 110024 - missing newline may cause incomplete tg tag
    Fixed a problem that caused a corrupt XML build log from xmakelog when the output from a shell action did not end with a newline.
  4. 110025 - output from .MAKE target rule does not get taglines
    Output from .MAKE target rules are now handled properly when using nmakelog and xmakelog. A new engine variable named .JOB.INFO. has been introduced which returns information about the current triggered job when called during shell action block expansion. Currently it will contain .READ and/or .FUNCTIONAL for .READ and .FUNCTIONAL jobs respectively. The variable can be used to test for this information on the current job in cases where the current target cannot be tested.
  5. 110026 - top level info missing from makelog.xml
    Fixed a problem when using xmakelog to generate an XML log, where the top level information was missing from the log when MAKELEVEL was set greater than 0. The top level information is now always included in the log regardless of the initial value of MAKELEVEL. The top level information includes <make>, <makelib>, <makeversion>, <makelog_format>, <path>, <vpath>, <host>, <version_os> and <id>.
  6. 110032 - output of immediate rule in functional context not captured in tg element
    When using xmakelog to generate an XML build log, all output from a .MAKE immediate rule within a .FUNCTIONAL action is now properly wrapped in a <tg> target element.
  7. 110033 - stderr of .FUNCTIONAL/.READ shell actions not captured in tg element
    When using xmakelog to generate an XML build log, stderror output from .FUNCTIONAL and .READ shell actions are now properly wrapped in a <tg> target element.
  8. 120007 - corrupt explain string in makelog.xml
    When using xmakelog to generate an XML build log, "\n" appearing in an explain string no longer corrupts the XML log. Backslashes are now mapped to the string "0x5c" in the XML log.

3.7 Miscellaneous

  1. 110027 - nmake.1/makerules.1 man page fixes and updates
    Fixed several formatting issues with the man pages, especially support for groff based systems, improving compatibility across platforms as well as Postscript and HTML output.

3.8 Variables

  1. New engine variable .JOB.INFO. - see 110025

3.9 Options

  1. New buildlog2html option -i - see 110022

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

Last Update: Friday,12-Aug-2016 12:26:30 EDT