Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products

Release Notes -- Nokia nmake lu3.3

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

2. New Features Introduced in Release lu3.3

2.1 Improvements to Probe

The nmake probe tool runs various tests on the compiler to determine key characteristics of the compiler and system environment. Various improvements have been made to make probe more robust and user friendly. The most noticeable change in this release is the addition of comments in the generated make probe file to give users a better understanding of the probe setting.

2.2 Export nmake Variables to Shell

Variables set in a makefile can be exported to the shell and used by shell action blocks. In the past it was necessary to explicitly set a variable in the shell action block in order for shell commands in that action block to use the variable. In lu3.3 the MAKEEXPORT variable is a colon separated list of nmake variables which are to be exported to the shell environment for each shell action. The following example exports variables A and C to the shell. Notice C is being set on the command line.

    $ cat Makefile
    A = aaa
    B = bbb
    C = ccc

    MAKEEXPORT=A:C

    test :
	    : make variable A = $(A)
	    : make variable B = $(B)
	    : make variable C = $(C)
	    : shell variable A = ${A}
	    : shell variable B = ${B}
	    : shell variable C = ${C}


    $ nmake C=abc
    + A=aaa
    + C=abc
    + : make variable A = aaa
    + : make variable B = bbb
    + : make variable C = abc
    + : shell variable A = aaa
    + : shell variable B =
    + : shell variable C = abc

2.3 Lucent C++ Instrument Support

The Lucent C++ 4.1, and 5.x compilers accepts the flags --purify and --quantify to use the Purify and Quantify development tools respectively. lu3.3 recognizes compilers that support such options and will invoke the compile with the appropriate flag with the corresponding instrumentation tool. For example:

    $ nmake CC=/opt/CC/4.1/CC instrument=/opt/purify4.1/purify
    + /opt/CC/4.1/CC -O --prelink_copy_if_nonlocal -I- -D_INSTRUMENT_ -c hello.c
    + PURE_HOME=/opt/purify4.1 PATH=/opt/purify4.1$PATH /opt/CC/4.1/CC --purify
    -O --prelink_copy_if_nonlocal -o hello hello.o

2.4 Include Makefile Expansion

The new nmake -p flag can be used to expand the include statements in makefiles showing you which included makefiles are being referenced. The expansion shows the file name of the included makefile followed by the contents of the included makefile. Global makefiles specified with the -g flag are also expanded. Nested includes are fully supported, and include statements both inside and outside of action blocks are supported.

When the -p flag is used a .mi file (ie. Makefile.mi) is created which contains the fully expanded makefile. The .mi file can be examined when debugging makefiles using include statements. The following example shows the .mi file created after running nmake -p:

    $ cat Makefile
    include $(VROOT)/project.mk
    hello :: hello.c

    $ cat Makefile.mi
    /*Beginning Makefile*/

    include $(VROOT)/project.mk

    /*Beginning ../project.mk
    CC = cc
    CCFLAGS += -g
    Ending ../project.mk*/

    hello :: hello.c

    /*Beginning /tools/nmake/sparc5/lu3.3/lib/probe/C/make/BFE0A4FEobincc
    CC.CC = /tools/sun_workshop/SUNWspro/bin/cc
    CC.ALTPP.FLAGS =
    CC.ALTPP.ENV =
    ...
    Ending /tools/nmake/sparc5/lu3.3/lib/probe/C/make/BFE0A4FEobincc*/

    /*Ending Makefile*/

2.5 More Control of :LIBRARY: for Shared Libraries

Two new base rules variables, sharedlibvers and sharedliblinks, gives the user greater control over the creation of shared libraries using the :LIBRARY: operator.

sharedliblinks
The variable sharedliblinks will control the creation of the symbolic links during the install of a shared library. By default sharedliblinks is set to 1 which will cause the symbolic links to be made (consistent with previous behavior). Set sharedliblinks=0 to turn off the generation of the symbolic links.
sharedlibvers
The variable sharedlibvers will control the addition of the major.minor version string to the shared library filename. By default sharedlibvers is set to 1 (preserving previous behavior) which will add the version string to the end of the filename. Users may set sharedlibvers=0 to eliminate the version string and produce a plain libname.so (or libname.sl on HP) file instead of libname.so.1.0. Setting sharedlibvers=0 will effectively set sharedliblinks=0 since the symbolic links make no sense without a major.minor filename.

2.6 EXTRASTATE Engine Variable

The new EXTRASTATE engine variable can be used to specify the name of a makefile whose state information will be used by the primary makefile. For example, specifying EXTRASTATE=another will cause reading another.ms in addition to the current state file while processing the current makefile. EXTRASTATE uses multiple statefiles just like viewpathing, except now we can use more than one .ms file in a single vpath node. EXTRASTATE was introduced to support the :cc: synchronization of state files enhancement (see 990093).


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

Last Update: Friday,12-Aug-2016 12:31:29 EDT