Nokia nmake Product Builder
Customer Support Newsletter

Issue No. 40 - May 2012
  1. nmake 14 Release Schedule
  2. Eclipse CDT Plugin
  3. New FAQs
  4. Using .FUNCTION to extend a shell action
  5. Feedback and Suggestions

nmake 14 Release Schedule

The team is working towards the nmake 14 release targeted for 3Q2012. The new release focuses on bug fixes and stability and includes over 25 fixes, including fixes for XML build logs, probe fixes for gcc and g++, fixes for several panic errors, improved error handling for large files, and more. The nmake 14 beta period is tentatively scheduled for 11-June-2012 through 16-July-2012 and includes beta of the new Javadeps alu2.3 release (see issue 39). The beta test phase is extremely important as it helps us maintain compatibility with existing makefiles and build environments by running the new release on real world projects. As such, the beta phase contributes directly to the stability of the product. All feedback from the beta is helpful so if you are interested in trying the beta or would like updates on the beta status please let us know at


Eclipse CDT Plugin

A new release of the nmake Eclipse CDT plugin is under development with release targeted for 4Q2012. The plugin will support the upcoming Eclipse Juno release expected June, 2012. Planned new features include an nmake error parser, auto-enablement of the nmake error parser in the nmake builder definitions, and revamped plugin documentation available in multiple formats. Productization improvements include moving to the Eclipse standard major.minor.service.qualifier plugin version numbering scheme for improved interoperability with the Eclipse p2 provisioning system, plugin signing for improved verification during plugin installation, and updated branding elements. Under the hood, the plugin release builds will move to a fully automated, "headless", build process against a controlled target platform, leading to higher quality and repeatable product. The plugin will continue to support the features of the existing experimental release 0.5.0 release, currently available at


New FAQs

New FAQ entries for the following topics have been added to the web site.


Using .FUNCTION to extend a shell action

The .BEFORE and .AFTER special atoms can be used to extend a rule by triggering another rule before or after the first rule. Another option is to use a .FUNCTION rule. The following example runs a local audit tool before compiling a source file. The .AUDIT rule returns shell statements that are expanded by the $(.AUDIT) variable in the original shell action.

$ cat Makefile
%.o : %.c (CC) (CCFLAGS)
        $(.AUDIT $(CCFLAGS))
        $(CC) $(CCFLAGS) -c $(>)

        local flags
        flags := --strict $(%:N=-I*)
        return myaudit $(flags) $(>>)

CC = gcc
.SOURCE.h : inc1 inc2
a :: a.c
b :: b.c
c :: c.c

$ nmake
+ myaudit --strict -Iinc1 -I- a.c
+ gcc -O -Iinc1 -I- -c a.c
+ gcc -O -o a a.o
+ myaudit --strict -Iinc2 -I- b.c
+ gcc -O -Iinc2 -I- -c b.c
+ gcc -O -o b b.o
+ myaudit --strict -Iinc1 -Iinc2 -I- c.c
+ gcc -O -Iinc1 -Iinc2 -I- -c c.c
+ gcc -O -o c c.o

In some cases this approach has some advantages over .BEFORE and .AFTER.


Feedback and Suggestions

We are interested in any feedback you might have about nmake. Please send comments / suggestions to

We're also open to suggestions for future articles. If there is anything you would like to see in the newsletter please send us a note to Thanks for your support!


<<home / newsletters