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]

4. Changes Impacting nmake 15 Makefiles

The changes in nmake 16 are largely backward compatible with nmake 15. Every effort has been made to insure code changes do not unexpectedly change the documented behavior of nmake features.

The following may impact makefiles or local tools.

4.1 Probe overflow files

Description
Probe information files my be created in a new overflow sub-directory in case of a file name collision. Typically probe information files are created in nmake_install_root/lib/probe/C/make/ for nmake information and nmake_install_root/lib/probe/C/pp/ for cpp information with a file name of 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. If a different compiler and/or set of attributes generates the same hash file name as an existing file then an overflow directory named XXXXXXXXPPPPPP.d is created to store additional probe information files named 001 to 999. nmake and probe handle the overflow directory and files transparently to the user and under normal conditions no special action is needed. However any custom tools or makefile rules that directly access the probe information files may need to be updated to account for the new overflow directories and files.
Who is affected
Projects with tools or makefile rules that directly access the probe information files and assume the files only have paths of lib/probe/C/make/XXXXXXXXPPPPPP and lib/probe/C/pp/XXXXXXXXPPPPPP.
What to do
If the probe information files are being copied then be sure to do a recursive copy on the directories to include any overflow sub-directories and files, and preserve the permissions and time stamps since duplicate entries are resolved based on their permissions and time stamps (eg. cp -pr). Use the probe -k option to get the proper absolute pathname of a probe file. The -k option will correctly give the path to an overflow file when appropriate and can be used in conjunction with -ppath to get files in alternate probe repositories. Similarly, the nmake :P=P variable edit operator will also return the path to overflow files when needed within nmake rules.

4.2 Date format change in the version string

Description
The format of the date in the version string changed to YYYY-MM-DD to be compliant with the ISO standard date format. Previous releases used a format of MM/DD/YYYY or MM/DD/YY.
Who is affected
Projects parsing the date in the version string from one of the following sources:
  • The MAKEVERSION nmake variable
  • Output from the --version command line option
  • The contents of the lib/make/version file
  • By running what or ident on the nmake binary
What to do
Update your tools or makefile rules to recognise the new date format. The following example shows a makefile able to parse the date from MAKEVERSION in any of the above formats.
$ cat Makefile
DATE  = $(MAKEVERSION:M=[0-9][0-9][0-9/][0-9][0-9/\-]+)
YMD   = $(DATE:M=/:Y?$(DATE:C|\(..\)/\(..\)/\(.*\)|\3 \1 \2|)?$(DATE:C|-| |G)?)
YEAR  = $(YMD:O=1)
MONTH = $(YMD:O=2)
DAY   = $(YMD:O=3)

targ : .MAKE
        print MAKEVERSION = $(MAKEVERSION)
        print DATE  = $(DATE)
        print YEAR  = $(YEAR)
        print MONTH = $(MONTH)
        print DAY   = $(DAY)

$ nmake
MAKEVERSION = Alcatel-Lucent (Bell Labs) nmake 16 2014-06-11
DATE  = 2014-06-11
YEAR  = 2014
MONTH = 06
DAY   = 11

$ nmake
MAKEVERSION = Alcatel-Lucent (Bell Labs) nmake 15 06/11/2013
DATE  = 06/11/2013
YEAR  = 2013
MONTH = 06
DAY   = 11

$ nmake
MAKEVERSION = nmake (Lucent Technologies Bell Laboratories) lu3.4 06/15/01
DATE  = 06/15/01
YEAR  = 01
MONTH = 06
DAY   = 15

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

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