nmake 13 Release Schedule
The nmake 13 beta trial is currently under way. The beta includes both nmake 13 and Javadeps alu2.2.6 and is scheduled to end 7/15/2011. Feedback from the beta helps the final release maintain compatibility with existing project makefiles and build environments. If you are interested in trying the beta please let us know at nmake@alcatel-lucent.com, all feedback is welcome. Here is the current list of user visible changes in the beta.
nmake 13 beta
- 030091 - metarule causes infinite loop
- 060045 - add -e explain output for archive targets
- 070043 - no explain info when target not generated
- 090017 - makelog end tag not written when license check fails
- 090021 - problems with formatting of examples in man pages
- 090025 - read statement zeros file
- 090029 - install should build :JAVA: targets by default
- 090031 - certify Sun Studio 12 Update 1
- 100001 - missing explain info
- 100007 - include structured build log dtd in product
- 100015 - solaris 10 ksh pwd avoids symbolic links
- 100016 - :cc: causes header scan
- 100019 - CC.LD for gcc 4.x
- 100020 - no explain message for :cc: target
- 100024 - capture needed explain map version in structured build log
- 100025 - core dump on :M
- 100026 - jar file in java package dir causes rebuild
- 110001 - remove and add jar prereq does not update jar target
- 110004 - need special handling for certain control characters
- 110006 - JAVACLASSDEST change should rebuild class files
- 110010 - update buildlog document for emapver
- 110014 - update logo in html build logs
Javadeps alu2.2.6 beta
- 070000 - bad packageroot error building in java root subdir
- 070001 - bad packageroot error with vpathed java files
- 100000 - jdeps symlink infinite loop
Eclipse plugin
The nmake Eclipse plugin has been certified with Eclipse 3.7 and CDT 8.0 with the GCC tool chain on Solaris and Linux. See our Eclipse support page for information on using Eclipse with nmake and our Eclipse update site to download the latest plugin.
New FAQs
New FAQ entries for the following topics have been added to the web site.
Strip Executables on Install
Here is a technique to automatically strip binary executables after they
have been installed. Stripping the installed copy removes the symbol table
and debugging information and reduces the file size. Stripping only the
installed copy and leaving the original alone allows builds to use the
-g compiler flag so developers can use the un-installed copy
of an executable for debugging while the installed copy in the same build
can be packaged for customers. This technique only works when
the installed files are copied so the nmake link variable
must not be defined for linking the installed executables.
The following .STRIP.o rule is triggered after the
.DO.INSTALL rule installs a file. If the installed file was
made with the .COMMAND.o rule, which links executable binaries,
then the strip command is run on the file. The base rules sets
the variable STRIP=strip, the variable can be changed to pick
up a specific strip command if needed.
.DO.INSTALL : .STRIP.o .STRIP.o : .AFTER .IGNORE .VIRTUAL .FORCE .REPEAT .MAKE if "$(**:A=.COMMAND.o)" .MAKE: $(STRIP) $(<<) end
The following example builds an executable, shell script and a library. It shows that only the executable is stripped after installation.
$ cat Makefile
/*
** strip installed binary executables created from .COMMAND.o
*/
.DO.INSTALL : .STRIP.o
.STRIP.o : .AFTER .IGNORE .VIRTUAL .FORCE .REPEAT .MAKE
if "$(**:A=.COMMAND.o)"
.MAKE:
$(STRIP) $(<<)
end
CC = gcc
CCFLAGS += -g
LIBDIR = $(VROOT)/lib
BINDIR = $(VROOT)/bin
:ALL:
hello :: hello.c
hi :: hi.sh
libaloha.a :: aloha.c
$ nmake install
+ gcc -O -g -I- -D_TRACE_ -c hello.c
+ gcc -O -g -o hello hello.o
+ /bin/ksh -n -c ${list[level]} $(( 1 + $x ))
+ 2> /dev/null
+ cp hi.sh hi
+ chmod u+w,+x hi
+ gcc -O -g -I- -D_TRACE_ -c aloha.c
+ ar r libaloha.a aloha.o
ar: creating libaloha.a
+ rm -f aloha.o
+ cp hello ../bin/hello
+ strip ../bin/hello
+ cp hi ../bin/hi
+ cp libaloha.a ../lib/libaloha.a
$ ls -l hello ../bin/hello
-rwxr-xr-x 1 richb richb 3260 Jul 5 14:25 ../bin/hello
-rwxr-xr-x 1 richb richb 7790 Jul 5 14:25 hello
$ file hello ../bin/hello
hello: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
../bin/hello: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped
Feedback and Suggestions
We are interested in any feedback you might have about nmake. Please send comments / suggestions to nmake@alcatel-lucent.com.
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 nmake@alcatel-lucent.com. Thanks for your support!