Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products

Release Notes -- Nokia nmake 16

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

3. Detailed List of Changes

3.1 Baserules

  1. 070011 - unnecessary warning during a clobber
    The clobber common action no longer issues a warning when Java source files have been removed.
  2. 070012 - "warning" duplicated in warning messages
    Fixed an issue that could cause a warning messages from :JAVA: builds to contain two consecutive "Warning:" strings.

3.2 cpp

  1. 110029 - cpp error with strings.h on RH5
    Macro function calls with no arguments where one or more arguments are expected are now supported. Such macro calls expand a null string for the arguments which is consistent with other popular tool chains. Warnings are issued in strict mode or when warnings are enabled.

3.3 Engine

  1. 080034 - no error from missing .SOURCE.h dirs in incremental build
    An update is now triggered when a prerequisite file with the .DONTCARE attribute goes missing in an incremental build. In general it is treated as though the file has been touched. Many C/C++ include files get .DONTCARE from being included inside #ifdef blocks. If a change is made in an incremental build that causes a .DONTCARE file to not be found when it was found in the previous build, the change will now trigger an update and reveal any possible errors caused by the change or update the target as needed. Previously such a change was ignored and any errors introduced would not be found until some later build triggered an update related to the files.
  2. 130007 - New :P=Y and :P=PA edit operators
    The :P=Y variable edit operator has been added to do a whence-style PATH search. The :P=P (probe path) variable edit operator has been extended with an option to list probe attributes by specifying :P=PA.
    See also New Features and Enhancements: New edit operator for PATH search.
    See also New Features and Enhancements: New edit operator for probe attributes.
  3. 130014 - add --help command line option
    The --help command line option has been added to display version information, contact information and a list of command line options.
    See also New Features and Enhancements: New --help command line option.
  4. 140002 - dir/file bind fails when dir bound down vpath
    Fixed an issue where nmake would fail to bind directory/file if directory did not exist in the top viewpath node and had already been bound down the viewpath. For example, if dir is not in the top node then expanding $("dir":T=F) would correctly return the directory down the viewpath but a subsequent expansion of $("dir/file":T=F) would return null. This has been fixed so the file is now correctly bound.
  5. 140004 - empty :L expansion down viewpath
    Fixed an issue where the :L (list directory) variable edit operator would incorrectly expand an empty list under the following conditions: 1) :L is applied to a relative directory that does not exist in the top viewpath node (expands an empty list as expected). 2) The directory is bound down the viewpath (for example using :T=F). 3) :L is applied to the bound path but it expands an empty list instead of the contents of the directory down the viewpath. This has been fixed so the :L operation in step 3 now lists the contents of the bound directory.

3.4 Operators

  1. 030004 - :MAKE: recurse mkdir
    The :MAKE: operator will now create directories in the top viewpath node as needed if a corresponding directory and makefile exists in the viewpath. Set recurse_mkdir=silent to disable the mkdir command shell trace in the output. Set recurse_mkdir=0 to disable the feature. By default recurse_mkdir=1 is set to enable the feature.
    See also New Features and Enhancements: New :MAKE: feature to make directories.
  2. 140001 - add warning for :MAKE: dir with no makefile
    The :MAKE: operator will now issue a warning message when a directory specified on the right-hand-side (RHS) exists with no valid makefile in the viewpath. Previously such directories were silently ignored. RHS shell patterns do not trigger a warning since they are designed to only recurse into directories with valid makefiles. A new warning is also issued when the viewpath is set and the RHS directory is specified in the top node with an absolute path but without a makefile in the directory since absolute paths are not searched through the viewpath. Other existing :MAKE: warnings have been re-worded for clarification.
  3. 130013 - different results with .SOURCE.class vs CLASSPATH
    When using the :JAVA: operator with .SOURCE.class the actual classpath search order could be specified inconsistently on the generated jdeps and javac command lines. Also, the classpath specified to the jdeps command could be different depending on whether the classpath was defined using .SOURCE.class or the CLASSPATH variable. This has been changed so the search paths are consistent between jdeps and javac and the use of .SOURCE.class or CLASSPATH does not affect the order. The classpath command line options are derived as follows -- "." : JAVACLASSDEST : .SOURCE.class : CLASSPATH. The new java_override_path variable allows the default search to be overridden which was previously not possible. Set java_override_path=1 to use .SOURCE.class as-is for the classpath without adding JAVACLASSDEST nor CLASSPATH.
  4. 130017 - .dummy.class error with localjavadeps down vpath
    When using the :JAVA: operator with the current directory specifed on the right-hand-side, if the localjavadeps file existed down the viewpath then an incremental build would fail to load localjavadeps resulting in a confusing error message about .dummy.class. This has been fixed so localjavadeps is correctly loaded and the build runs as normal. Two new error messages have also been added to indicate when localjavadeps is not successfully loaded or when localjavadeps is loaded but does not define the expected information indicating an invalid file.

3.5 Probe

  1. 130007 - probe attributes
    The probe information files are now verified after being loaded by checking that the compiler and probe attributes in the file are correct. Probe information file collisions are now handled in case different compilers and attribute sets generate the same file name hash. The information files now contain a comment showing the user and machine which ran probe and the time and date the file was originally generated. A new probe attribute called NMAKEVER has been added for the nmake version so different nmake releases will now use different probe files. NMAKEVER can be overridden by setting environment variable VERSION_NMAKE.
    See also New Features and Enhancements: Probe attribute handling and support for probe file collisions.
  2. 130009 - support probe_hints without /bin/ksh
    The probe_hints feature no longer requires /bin/ksh to be installed. Previously using probe_hints without /bin/ksh present caused many of the probe variables to be set to null. Now if a probe_hints script is present it is run with the same shell used to execute the main probe script. New error messages are issued when probe_hints exits with an error code or when the probe_hints values cannot be loaded.
  3. 130018 - probe script exits without error code
    When running under older versions of ksh the probe scripts would not exit with an error code when an error occurred. This has been fixed so the scripts now exit with the appropriate error code.
  4. 130022 - probe failure with concurrent executions
    The probe command now uses mkstemp(3) to generate its temporary output file name instead of using the process ID. This eliminates possible file clashes when probe is run simultaneously on different machines using a shared nmake installation.

3.6 Build Log

  1. 130021 - optimize and simplify nmakelog/xmakelog action expansion
    The .ACTIONWRAP rule used for nmakelog and xmakelog builds has been optimized and simplified bringing improved performance and other enhancements.
    See also New Features and Enhancements: nmakelog and xmakelog optimizations.
  2. 140003 - Document optimizations for build data collection
    Several new optimization techniques have been added to the buildlog documentation for more efficient build data collection using xmakelog.
  3. 140005 - support recursive coshell builds for nmakelog/xmakelog
    An issue causing incomplete build log markup from xmakelog when using coshell has been fixed. Recursive coshell builds are now properly supported by nmakelog and xmakelog.

3.7 Miscellaneous

  1. 130019 - fix cut and paste from man pages
    The man pages have been updated to support pasting example text into unicode aware terminals. Previously copying example text from the HTML man pages would paste a unicode minus sign instead of a dash for argument flags leading to errors.

3.8 Variables

  1. New baserules variable recurse_mkdir - see 030004
  2. New environment variable VERSION_MAKE - see 130007
  3. New baserules variable java_override_path - see 130013

3.9 Options

  1. New --help command line option - see 130014

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

Last Update: Friday,12-Aug-2016 12:28:10 EDT