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]

2. New Features and Significant Enhancements

2.1 New :MAKE: feature to make directories

The :MAKE: assertion operator now creates directories in the top viewpath node as needed. If a valid, corresponding right-hand-side (RHS) directory and makefile exists in the viewpath but not the top node then the directory will be created in the top node when recursing. RHS shell patterns are supported (including no RHS prerequisites which acts as an implicit *). The recurse_mkdir variable is used to adjust the behavior. Set recurse_mkdir=silent or recurse_mkdir=-1 to disable the mkdir command shell trace in the output while keeping the feature enabled. Set recurse_mkdir=0 to disable the feature and restore the previous behavior where directories are not created. By default recurse_mkdir=1 is set to enable the feature. The recurse_mkdir variable can be set on a per-makefile basis.

2.2 New edit operator for PATH search

The new :P=Y edit operator does a whence-style PATH search. For each token in the variable the PATH is searched for a corresponding executable file and the absolute path of the file is returned. Null is returned for tokens not found.

$ cat Makefile
CMDS = cc ls abc pq
targ : .MAKE
        print $(CMDS:P=Y)

$ nmake
/usr/bin/cc /bin/ls /opt/exp/bin/pq

2.3 New edit operator for probe attributes

The :P=P edit operator (probe path) now accepts the new option "A" to return the current probe attributes instead of the probe information file path. The probe attributes, along with the compiler path, are used in generating the probe information file hash name so different attribute values use different information files. Use the :P=PA form for a list of the probe attributes for the specified compiler. The attribute list is similar to the output from probe -a option.

$ cat Makefile
CC = /usr/bin/cc
targ : .MAKE
        print $(CC:P=PA=C)

$ nmake
PREROOT='' UNIVERSE='ucb' VERSION_OS='Linux2.6 Red Hat Enterprise Linux Server r
elease 5.7 (Tikanga)' VERSION_NMAKE='16' ATTRIBUTES='PREROOT UNIVERSE VERSIO N_O
S VERSION_NMAKE'

2.4 Probe attribute handling and support for probe file collisions

The probe command and nmake base rules now verify correct probe information files are being created and loaded by reading the compiler and probe attribute values, used to determine the file name hash, from the information file and verifying they are correct. The probe information files contain a new probe_attributes section listing the compiler and attribute names and values used for this verification.

The probe information file is lib/probe/language/tool/XXXXXXXXPPPPPP, where XXXXXXXX is a hex hash value of the compiler path and probe attributes, and PPPPPP is derived from the last six characters of the compiler path. Information file name collisions are now handled. In case of a collision a sub-directory named XXXXXXXXPPPPPP.d is created in the same directory with additional probe information files named a string of three decimal digits ranging from 001 to 999. When a collision occurs on look-up the files in the .d directory are scanned until matching compiler and attributes are found.

2.5 nmakelog and xmakelog optimizations

Several optimizations and enhancements have been made to the nmakelog and xmakelog operations making them generally simpler, more efficient and more robust. These enhancements are especially important when using xmakelog to capture build timing data for use in build performance optimization.

2.6 New --help command line option

The new --help option prints the version information, contact information and a list of the command line options and then exits without processing any makefiles.


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

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