: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
recurse_mkdir variable is used
to adjust the behavior. Set
recurse_mkdir=-1 to disable the
mkdir command shell
trace in the output while keeping the feature enabled.
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.
: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
: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
$ 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'
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
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
.d directory are scanned until matching compiler and
attributes are found.
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.
-i) option now works properly when running nmakelog and xmakelog.
--help option prints the version information, contact
information and a list of the command line options and then exits without
processing any makefiles.