Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products

Release Notes -- Nokia nmake alu3.9

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

3. Bug Fixes and Enhancements

3.1 Baserules

  1. 010071 - replace coshell with 3rd party tools
    Job action blocks can now be piped to external job distribution utilities such as the Sun Grid Engine.
    For details see - New Features and Enhancements: Introduction of Sun Grid support
  2. 040071 - dropped -I flag when using nativepp=1
    Fixed a problem where -I compile flags were dropped when the compiler does not support -I- and the compiler's native preprocessor was used. For such configurations prefixinclude=0 was not being set which could lead to -I flags for prefixed include files to be omitted. The default value of variable nativepp is now -1 (changed from 1) which allows prefixinclude to be set appropriately for all compilers.
  3. 050058 - prefixinclude for nativepp not getting -I flag
    When a file was included using its absolute path, the -I flags for the files it included in its directory could be omitted. This has been fixed.
  4. 060000 - prefixinclude -I flag dropped in new vpath node
    Fixed a problem where -I compile flags could be dropped for an include file that is down the viewpath and no other files are included from its corresponding directory in the local node and the native preprocessor is being used.
    This solution also adds the new :P=VL variable edit operator. For details see - New Features and Enhancements: New variable edit operator :P=VL
  5. 060054 - dropped -I flag from prefixed/non-prefixed include
    Fixed a problem where a -I compile flag could be omitted for an include file that is included both with and without a directory prefix from different source files when using the native preprocessor.
  6. 060063 - no exit with compile error when using nmakelog
    A trap defined in the default .ACTIONWRAP rule used for output serialization failed to catch errors from the shell jobs. The .ACTIONWRAP rule has been fixed so errors are trapped so nmake can exit when appropriate.
  7. 070000 - suspicious test in .SOURCE.LCL.INCLUDE
    Fixed a problem that could cause unnecessary -I compile flags when nmake cpp was being used.
  8. 070003 - integrate
    Integration with Eclipse is supported by setting recurse_begin_message=gnu which provides gnu make style recurse messages in build output. Eclipse and other tools use these messages to determine where source files are located, these messages are essential in tracking files with non-unique names. By default recurse_begin_message=default which provides the traditional nmake style recurse messages. Other values of recurse_begin_message define the actual recurse message. When using anything other than the default, recurse messages are now printed for every recursive make, not just those using :MAKE:, including user defined actions. The variable MAKELEVEL has been added. MAKELEVEL indicates the recursion level of the current nmake instance. It is set to 0 in the top level nmake and incremented by 1 in each recursive nmake invocation.
    For details see - New Features and Enhancements: Introduction of Eclipse CDT support

3.2 cpp

  1. No changes to cpp in this release.

3.3 Engine

  1. 020088 - allow to suppress MAKEEXPORT output
    The exporting of MAKEEXPORT variables is no longer shown in the shell trace output. MAKEEXPORT lists nmake variables to be exported to the shell for shell jobs. Previously the definition and exportation of each variable was included in the shell trace output for every shell job resulting in a lot of redundant output. Now MAKEEXPORT is not included in the shell trace providing cleaner output but the functionality is the same. This change is used in implementation of 070003 to pass down recursion levels. Export messages are included in debug level 6 output.
  2. 050021 - remove whitespace sensitivity in license file
    The license key parser now ignores extra white space to avoid common sources of invalid license errors.
    For details see - New Features and Enhancements: Robust license key handling
  3. 060000 - :P=VL edit operator
    The new variable edit operator :P=VL has been added to return the view local path name for each token that is an atom bound to a file.
    For details see - New Features and Enhancements: New variable edit operator :P=VL
  4. 060028 - $(^) is null
    Fixed a problem where the automatic variable $(^) would expand to null for a file down the viewpath when the current makefile was in the same directory and referenced using the nmake -f flag with the absolute path to the makefile. The makefile's directory would get recorded as having view index 0 instead of the correct index, then other files in the same directory would inherit view index 0. nmake now records the proper view index.
  5. 060046 - prerequisite list is null
    Fixed a problem where automatic prerequisite variables (such as $(*) and $(>)) failed to expand a prerequisite when the prerequisite was specified with a path, its basename matched the target basename, and the prerequisite's path was in the default search path. This lead to the target being bound with the same path as the prerequisite leading to the prerequisite being dropped from the list. The prerequisite is no longer dropped.
  6. 060070 - :C edit operator core dump
    Expanding the variable $(...:C? ?|?) no longer causes a core dump nor corrupt output.
  7. 070001 - keepgoing changes errors to warnings
    Some error messages were being output as warnings when the keepgoing option was enabled. Errors are no longer changed to warnings.
  8. 070005 - $(...|VAR) expansion wrong
    Using "|" to expand the first non-null variable in a list would skip the automatic variable $(...), even though it is not null, and expand the next non-null variable instead. For example, $(...|VAR) would expand VAR if VAR was not null and expand null otherwise even though ... was not null. This has been fixed so $(...) now expands correctly when | is used.
  9. 070025 - port to Interix /bin/cc
    The purpose of the port to /bin/cc is to workaround the issue of gcc generated executables dumping core on Windows XP SP2 that was traced to the Data Execution Prevention (DEP) feature that is enabled by default on XP SP2. The build was moved to /bin/cc in order to maintain the security advantages of DEP as opposed to requiring DEP be disabled.
    See also - New Features and Enhancements: Windows version runs on Windows XP SP2

3.4 Operators

  1. 060010 - does not respect keepgoing option
    When a :JAR: assertion generated a JARROOT error and the keepgoing (-k) option was enabled nmake would stop the build instead of continuing to process the rest of the targets in the makefile. This has been fixed so the keepgoing option is now respected.
  2. 060014 - full Java rebuilds until clean build
    If a Java package had a compile error during its initial build the entire package would be rebuilt on subsequent builds until it was successful. Now if the initial build fails only the necessary files are rebuilt instead of the entire package.
  3. 060017 - :JAR: problem using * pattern without file extension
    Previously there was no way to tell :JAR: to pick up files without a dot (.) in the filename. Using *, as in $(JARROOT)/*, would appear to work for the first build but didn't actually track all the files in the jar. Touching a file would not cause the jar to be updated. The rules were written with the assumption of at least one dot in the filename so $(JARROOT)/*.* needed to be used to correctly maintain the jar, but this would not pick up files without a dot. This has been fixed so * can now be used to match all files.
  4. 060022 - keepgoing jar targs do not rebuild after failure
    When the keepgoing (-k) option was enabled and a :JAR: target failed, the target was recorded as up to date in the state file so the next build would not try to build the jar again. Failed jar targets are now rebuilt as expected when using the keepgoing option.
  5. 060041 - :JAR: rebuild from multiple patterns with matching dir
    A jar target would unnecessarily rebuild in a new viewpath node when the RHS contained two or more patterns with the same directory. For example, specifying patterns com/*.class and com/*.conf would trigger an unnecessary build. This has been fixed.
  6. 060049 - JARPREVIOUS bottleneck
    A performance enhancement was made to the :JAVA: and :JAR: operators.
    For details see - New Features and Enhancements: Java and Jar performance improvements with very large packages

3.5 Probe

  1. 060051 - probe scripts using ksh syntax
    Some ksh specific integer operations in the probe shell scripts caused some probe tests to fail when bash was used as the login shell. The scripts are now portable between ksh and bash with some additional syntax changes to support bash. The scripts also attempt to relaunch themselves with ksh or bash if they are being executed by a different shell.
  2. 070015 - probe misses SUNWCCh headers with Studio 11 compiler
    Fixed the probe script to correctly set CC.SUFFIX.LINKHEADER for the SUN Studio 11 compiler. Also fixed a problem where SUNWCCh files could be picked up from wrong directories for all SUN compilers.

3.6 Miscellaneous

  1. 070006 - certify jdk 6
    Sun JDK 6 (1.6.0) has been certified with nmake alu3.9.

3.7 Variables

  1. New variable QRSH - see 010071.
  2. New variable QRSHFLAGS - see 010071.
  3. New variable sge_qrsh - see 010071.
  4. New variable SGESHELL - see 010071.
  5. Change to variable recurse_begin_message - see 070003.
  6. Change to variable recurse_end_message - see 070003.
  7. New variable MAKELEVEL - see 070003.

3.8 Options

  1. Change to option -k / keepgoing - see 070001.

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

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