Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products

Release Notes -- Nokia nmake lu3.7

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

3. Bug Fixes and Enhancements

3.1 Baserules

  1. 020052 - support hp-ux nonstandard shared lib names
    Linking against libraries with non-standard names, such as libname.1 on HP-UX, is now supported.
    See also New Features: Support for HP-UX nonstandard shared library names
  2. 020077 - code rebuilds with localprobe=vpath
    Fixed a problem that caused files to be rebuilt unnecessarily when localprobe=vpath was used and the probe file was moved from one node to another between builds.
  3. 030011 - support Rational clearaudit
    When using nmake in a Rational ClearCase environment nmake can produce ClearCase Configuration Records and Derived Objects by running shell actions through clearaudit. To use clearaudit set ccase_audit=1. A warning message is printed to verify clearaudit is being used. The message change be changed or eliminated by setting variable ccase_message. A ClearCase view must be set and the working directory must be in a dynamic view.
  4. 030015 - support java at UWIN
    The :JAVA: and :JAR: assertions are supported on UWIN for compiling java code and making jar files. A wrapper command, npwj, is used to translate UWIN pathnames to native win32 pathnames for the java commands. See the :JAVA: and :JAR: man pages for more information.
  5. 040031 - support Java on SFU/Interix
    The :JAVA: and :JAR: assertions are supported on SFU for compiling java code and making jar files. A wrapper command, npwj, is used to translate SFU/Interix pathnames to native win32 pathnames for the java commands. See the :JAVA: and :JAR: man pages for more information.
  6. 040036 - bind +lname does not give precedence to name.a
    Using +lname to link a library without the "lib" prefix will now correctly pick up the archive library name.a rather than the shared library when both files exist.
  7. 040037 - quoteinclude prefix enhancement
    The quoteinclude feature is enhanced to optionally warn only for quoted headers within the viewpath that inherit a directory prefix instead of all quoted headers in the viewpath. To limit the warning to headers that inherit a directory prefix add "prefix" to the end of the quoteinclude setting. The usage change is upward compatible. The usage is:
    quoteinclude = 1|2|3 [prefix]
    See also New Features: quoteinclude prefix enhancement
  8. 040051 - extra prefix directory added during include scan
    Fixed a problem where the prefixinclude feature would incorrectly add an extra prefix directory to the internal list of include files being scanned. This could arise when an include file was specified as a target in the makefile and also included with a directory prefix by the source code. It could result in the header being unnecessarily re-installed when everything was up to date in the viewpath.
  9. 040067 - prerequisite library not archived
    Fixed a problem where an archive library that is built and linked to an application in the same makefile would not be archived, leading to a link error when linking the application. This was observed when CC.SUFFIX.SHARED=.o was set in the probe file, which is set for some AIX platforms.

3.2 cpp

  1. 030040 - suffixsunwcch refinements for Sol2.8/CC6
    nmake cpp supports a specialized search scheme for system headers used by the Sun C++ WorkShop 6 compilers running under Solaris 2.8 and above.
  2. 030085 - implement C99 __VA_ARGS__ functionality in cpp
    nmake cpp now supports macros with a variable number of arguments according to the ISO C99 standard. The standard specifies that __VA_ARGS__ should be replaced by the variable argument list.
    See also New Features: Support for ISO C99 standard variadic macros
  3. 040054 - cpp hangs in transition and compatibility modes
    nmake cpp will now detect deep macro recursion loops and issue an error instead of hang in a loop.

3.3 Engine

  1. 010050 - nmake can not find a generated target
    Fixed a problem where nmake could not find a generated header file that is also a target in the same Makefile. The problem appeared only in second and subsequent runs of the Makefile.
  2. 020027 - add process id and user id into lock file
    Lock file handling is enhanced to provide information about the process responsible for creating the lock file. The lock file now includes the pid, uid, and hostname and when a lock file is detected the uid is now included in the diagnostic message. Under certain conditions, stale lock files are automatically detected and cleaned up.
    See also New Features: New lock files
  3. 020062 - archive libraries rebuild when using arclean
    Fixed a problem in which nmake rebuilt archive libraries when the libraries shared at least one .o and the arclean variable was set.
  4. 030001 - bogus warning message for unclosed quotes
    nmake no longer outputs a bogus warning message when an unclosed, escaped double quote occurs in the :C edit operator. For example, the following valid expression is now accepted without complaint:
  5. 030036 - nested error 3 core dump
    Fixed a problem where nmake would dump core when an error 3 command was nested within several if and while statements.
  6. 030060 - bound directory changes causing dropped -I flag
    When two source files included the same header file using different path prefixes, the first build would run fine but an incremental build would fail on one of the source files due to a missing -I flag. This is now fixed.
  7. 030092 - DOS format makefile may cause problems with nmake on UWIN
    nmake can now read DOS-format text files on the UWIN platform.
  8. 030098 - wrong $(VPATH) on case insensitive filesystems
    Fixed problem with VPATH initialization on UWIN case-insensitive file systems.
  9. 030099 - :L operator does not support case insensitive filesystems
    The :L now works as expected on case insensitive file systems under UWIN:
    $ cat makefile
            : $(PWD:L>=a*)
            : $(PWD:L>=A*)
    $ export case_sensitive_file_system=0
    $ nmake
    [2]+ : ab ABC
    [3]+ : ab ABC
    $ export case_sensitive_file_system=1
    $ nmake
    [2]+ : ab
    [3]+ : ABC
  10. 030100 - the problems in using targetcontext
    Fixed a problem that occurred during variable expansion when the targetcontext option was enabled.
  11. 040008 - core dump on Linux®
    Fixed problem that was caused by attempting to write into unwritable memory space.
  12. 040015 - nmake enters infinite loop in Makerules
    Under some rare conditions nmake would get stuck in an infinite loop when processing the :: assertion defined in This is now fixed.
  13. 040016 - nmake core dumps from .o files in .ALL
    This problem was due to memory allocation and is now fixed.
  14. 040020 - core dump reading corrupt state file
    Extra checks have been added to guard against unexpected data in state files and prevent a core dump.
  15. 040044 - $(<) points to target down the viewpath
    Fixed problem that would occur when a Makefile target was also used in a metarule action under a different alias.
  16. 040048 - wrong date stamp recorded in state file
    Fixed a problem involving an aliased header file for which the original rule had scanned prerequisites. In this case the remaking of the alias rule led to a different time value for the alias rule. This was fixed by synchronizing the time of the alias rule back to the time of the original rule.
  17. 040049 - nmake changes umask
    nmake normally changes the umask to match the current directory's group and other write permissions. A new option is now available which provides the ability to suppress this behavior.
    See also New Features: Option to suppress umask change
  18. 040050 - LDLIBRARIES=-l core dumps
    Setting LDLIBRARIES to an (invalid) null library name caused a core dump. This is now fixed.
  19. 040052 - core dump using .JOINT
    A problem was found in which a .JOINT rule with a single target would dump core. The problem is now fixed.

3.4 Operators

  1. 010048 - :INSTALL: problems
    Fixed a panic error when attempting to install a file from down the viewpath to the corresponding directory in the current node.
  2. 020075 - :JAVA: does not build with install common action
    Running nmake install will now build :JAVA: java class targets. Previously, jdeps would run but the classes were not made.
  3. 030062 - don't run javadeps when there are no files
    When using the :JAVA: operator, jdeps will now only be executed if some java source files exist. Previously, if there were no java files jdeps would be run with no source file arguments leading to an error.
  4. 030063 - :JAR: cannot disable default install
    When running nmake install, the default installation of :JAR: targets to LIBDIR can now be suppressed using the :INSTALLDIR: assertion with no RHS directory. For example, the following will not install $(LIBDIR)/test.jar:
    :INSTALLDIR: test.jar
    test.jar :JAR: classes/*.class
  5. 030067 - Java inside-package local build
    Fixed a problem that caused files outside the current java package to be recompiled during an inside-package java build.
  6. 030070 - dependent java files not rebuilt
    Fixed a problem where dependent java files down the viewpath were not recompiled during an incremental build. The dependent files are now recompiled as expected.
  7. 030071 - java files in current dir rebuild in new node
    When java files are in the current directory and listed on the RHS of :JAVA:, they are no longer rebuilt unnecessarily when a new node is added to the front of the viewpath.
  8. 030074 - gets confused when local class dir does not exist
    nmake no longer tries to update a :JAR: target that is up to date down the viewpath when the class directory does not exist in the current node.
  9. 030077 - .VJARFILES. $(S) variable never defined
    The unused variable $(S) has been removed from the :JAR: rules. It had inadvertently been left in the rules and could cause an error if S was set and exported in the environment.
  10. 030088 - jar rebuilds when sharing class files
    When two jar files are generated using :JAR: assertions in the same makefile, and the first jar contains a subset of files from the second, the second jar file is no longer re-built unnecessarily.
  11. 030105 - jar errors when jar files share class files
    Eliminated jar errors when two jar files are generated using :JAR: in the same makefile and share class files.
  12. 040021 - :: operator should support .res files on UWIN
    On UWIN, .res files specified on the RHS of the :: operator are now used when linking the target.
  13. 040066 - support java 1.5 class naming format
    The new JDK 5 class naming format is now supported. The JDK 1.4 format is assumed by default. :JAVA: determines the version of the JDK being used and calls javadeps with the proper arguments for JDK 5 support.

3.5 Probe

  1. 990055 - request option to turn off automatic probe feature
    A new option, disableautomaticprobe (-m), prevents nmake from automatically triggering a probe of the $(CC) compiler. When the option is in effect, nmake will not trigger a probe under any condition.
    See also New Features: Option to disable probe
  2. 030108 - probe_hints cannot set CC.REPOSITORY
    Several probe variables could not be overridden by the probe_hints file. This has been fixed. The following variables can now be set by probe_hints: CC.INSTRUMENT, CC.LINK.OPTION, CC.REPOSITORY, CC.SHARED.ALL, CC.SHARED.UNDEF, CC.SUFFIX.DYNAMIC, CC.SUFFIX.DLL, and CC.SUFFIX.LINKHEADER.
  3. 040042 - localprobe gid mismatch on interix
    The localprobe feature is now supported on the SFU/Interix platform.

3.6 Miscellaneous

  1. 030093 - incorrectly built binary warning on red hat 9
    Fixed ksh88i included in the Linux package so it no longer causes "Incorrectly built binary" warnings on Red hat 9.
  2. 030104 - nmakelog does not exit with error code
    The nmakelog command, used for output serialization, now exits with the nmake exit code when the platform supports named pipes. Previously when using nmakelog the nmake exit code was always ignored.
  3. 040022 - Port to Interix
    Support for Microsoft® Windows® Services for UNIX (SFU), allowing the use of nmake on the Windows® 2000 and Windows® Server 2003 operating systems running SFU 3.5.
    See also New Features: Support for the Services for UNIX (SFU) platform
  4. 040034 - interix ksh wrong return code from test -L
    The ksh88i included in the SFU package now correctly handles test -L.
  5. 040040 - Support win32 commands on Interix which require .exe suffix
    The win32 native java.exe and jar.exe commands are supported on SFU/Interix without specifying the .exe suffix in order to maintain compatibility with UNIX® makefiles.
  6. 040062 - collect info for license request
    The nmake_license command has been added to collect information to request evaluation licenses. Running the command generates the file ./request.txt which the user can edit and email to

3.7 Variables

  1. New variable ccase_audit - see 030011.
  2. New variable ccase_message - see 030011.
  3. New variable disable_probe_message - see 990055.
  4. Variable quoteinclude usage changed - see 040037.

3.8 Options

  1. New option disableautomaticprobe / -m - see 040037.
  2. New option disableumaskchange / -u - see 040049.

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

Last Update: Friday,12-Aug-2016 12:33:00 EDT