Nokia nmake Product Builder
Customer Support Newsletter

http://www.bell-labs.com/project/nmake/newsletters/

Issue No. 20 - June 2005
Contacts
Articles
  1. Solaris 10 Support
  2. Systems Technology Center
  3. Vim Syntax Highlighting
  4. State File Dump
  5. Using Purify

Solaris 10 Support

nmake release lu3.7 has recently been verified on Solaris 10 (also known as Solaris 2.10). Future releases will also be verified and supported on Solaris 10.

index

Systems Technology Center

After some reorganization the Software Technology Center is now called the Systems Technology Center. But don't worry, the STC still does software and will continue to support nmake, Sablime® and Exptools.

index

Vim Syntax Highlighting

If you are a Vim user and enjoy syntax highlighting you may be interested in the Vim syntax highlighting rules we put together for nmake makefiles. In general the following items are highlighted: variable references, operators, special atoms, nmake statements, comments and non-tab indentions. Here is an example screenshot of a color xterm:

[vim screenshot]

Notice the .DONE action is indented with spaces instead of a tab so the indention is highlighted to show the error.

To install the syntax rules:

Unfortunately the syntax rules are not perfect. We still have some problems with very complex variable edit operations and nested variables where the entire variable string doesn't get highlighted. But the rules seem to work well in most common cases. We are by no means experts in Vim syntax highlighting so if you make any improvements or have suggestions please share them with us!

index

State File Dump

Sometimes you might want to see what is stored in the nmake state file (eg. Makefile.ms). The following command will read the state file and dump it in text format. (It works for the .mo file too.)

    nmake -blrvf Makefile.ms

index

Using Purify

nmake has integrated support for Rational® Purify. No special nmake rules are needed, just set the instrument base rule variable as instrument=/path/to/purify.

To set specific purify options define the options in the PURIFYOPTIONS or PUREOPTIONS environment variables as stated in the purify documentation. Note, these are not nmake variables so they must be exported in the environment. The options will not show up on the command lines, purify reads the environment variables directly.

$ ls -l
total 4
-rw-r--r--    1 richb    richb          60 Jun 22 13:27 Makefile
-rw-r--r--    1 richb    richb          77 Jun 22 13:19 abc.c
-rw-r--r--    1 richb    richb          40 Jun 22 13:19 hello.c

$ cat Makefile 
CCFLAGS = -g
:ALL:
libabc.a :: abc.c
hello :: hello.c -labc

$ export PURIFYOPTIONS=-cache-dir=$HOME/purify_cache

$ nmake instrument=/tools/purify/purify-4.1-solaris2/purify
+ cc -g -I- -D_INSTRUMENT_ -D_TRACE_ -c abc.c
+ ar r libabc.a abc.o
ar: creating libabc.a
+ rm -f abc.o
+ cc -g -I- -D_INSTRUMENT_ -D_TRACE_ -c hello.c
+ /tools/purify/purify-4.1-solaris2/purify cc -g -o hello hello.o libabc.a
+ PURE_HOME=/tools/purify/purify-4.1-solaris2
Purify 4.1 Solaris 2, Copyright (C) 1992-1997 Rational Software Corp. All rights reserved. 
Instrumenting: crti.o crt1.o values-xa.o hello.o libabc.a. libc.so.1 crtn.o libdl.so.1 libc_psr.so.1  Linking

$ ls -l
total 456
-rw-r--r--    1 richb    richb          60 Jun 22 13:27 Makefile
-rw-r--r--    1 richb    richb        6971 Jun 22 13:55 Makefile.mo
-rw-r--r--    1 richb    richb       21676 Jun 22 13:55 Makefile.ms
-rw-r--r--    1 richb    richb          77 Jun 22 13:19 abc.c
-rwxr-xr-x    1 richb    richb      423364 Jun 22 13:55 hello
-rw-r--r--    1 richb    richb          40 Jun 22 13:19 hello.c
-rw-r--r--    1 richb    richb        2752 Jun 22 13:55 hello.o
-rw-rw-rw-    1 richb    richb        3464 Jun 22 13:55 hello_pure_p9_c0_410.o
-rw-r--r--    1 richb    richb        3512 Jun 22 13:55 libabc.a
-rw-rw-rw-    1 richb    richb        4032 Jun 22 13:55 libabc_pure_p9_c0_410.a

nmake supports other instrumentation tools such as insight, quantify, purecov, purify, sentinel, insure and codewizard. See the instrument base rule variable in chapter 4 of the Reference Manual.

index

<<home / newsletters