Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products

Release Notes -- Nokia nmake 15

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

2. New Features and Significant Enhancements

2.1 Eclipse Sub-directory Builds

Integration with Eclipse has been enhanced to support sub-directory builds launched through Eclipse CDT custom make targets. Eclipse sets the PWD environment variable to the root of the project which caused problems when nmake was not launched from the root. nmake now verifies PWD and corrects the value if necessary allowing Eclipse sub-directory builds to run as expected.

2.2 New Special Atom to Identify Directories

The .DIRECTORY Special Atom has been added to mark atoms bound to directories. It is analogous to the .REGULAR Special Atom for marking regular files. .DIRECTORY can be used with the :A edit operator to identify bound directories. For example, $(VAR:A=.DIRECTORY) will list the bound directories in variable VAR .

2.3 New Edit Operator Options to Identify Existing Files, Directories or Links

The :P=X edit operator (unbound existing files) has been extended to optionally list only regular files, directories, symbolic links or any combination of the three. The default :P=X behavior is unchanged to preserve compatibility. The options are as follows.

edit operator description
:P=X current behavior - list existing files of any type
:P=XP list existing files using physical test (symbolic links are not followed)
:P=X[P]=F list existing regular files
:P=X[P]=D list existing directories
:P=X[P]=L list existing symbolic links

Any combination of FDL may be specified, such as :P=X=FD, :P=XP=DLF, etc. Note that :P=X=L lists nothing since symbolic links are followed and will resolve as files or directories. To test links use :P=XP=L.

2.4 New Edit Operator options to Quote nmake Metacharacters

The :Q edit operator (shell quote) has been extended to allow quoting for regular expression and shell pattern metacharacters used by nmake. The edit operator quotes each token to remove the special meaning of any syntactical constructs to allow interpretation as a literal string. The default :Q behavior is unchanged to preserve compatibility. Only one option may be used at a time. The options are as follows.

edit operator description
:Q quote for the shell - current behavior
:Q=C quote for :C edit operator regular expression metacharacters
:Q=M quote for :M edit operator regular expression metacharacters
:Q=N quote for :N edit operator shell pattern metacharacters

2.5 New inode Rule Trigger

The new .TRIGGER.inode Special Atom can be used to add an inode comparison to a rule. When a target with .TRIGGER.inode is made an extra check is done to compare the target's inode with the inode of the first file prerequisite. An update is triggered if the inodes are different. This is in addition to the normal date check and other triggers. The inode check works for both hard and symbolic links. .TRIGGER.inode is now used by the :LINK: assertion.

Here is a simple example.

$ cat Makefile
t1 : p1 .TRIGGER.inode
        ln -f $(*) $(<)

$ nmake
+ ln -f p1 t1

$ ls -li p1 t1
514882 -rw-r--r-- 2 richb richb 3 Jun  7 10:27 p1
514882 -rw-r--r-- 2 richb richb 3 Jun  7 10:27 t1

$ rm t1

$ cp -p p1 t1

$ ls -li p1 t1
514882 -rw-r--r-- 1 richb richb 3 Jun  7 10:27 p1
514883 -rw-r--r-- 1 richb richb 3 Jun  7 10:27 t1

$ nmake -e
inode mismatch: t1 : p1
+ ln -f p1 t1

2.6 Enhanced Pipe Support for read Statement

The nmake read statement reads input and assigns the content to a variable. With the new -l option it will read one line at a time, which is useful for reading from pipes. Also two previously undocumented options have been documented. The -n option suppresses reading input if no variable is specified, allowing a process to be initialized for reading without immediately reading input. The -u[0-9] option reads input from the specified file descriptor.


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

Last Update: Friday,12-Aug-2016 12:27:01 EDT