NMAKE(8)

NAME
nmake - nmake installation and administration

DESCRIPTION
Implementation changes are listed in the nmake source directory in the files RELEASE and HISTORY. Major features are listed in FEATURES. The documentation is still rough -- it will get better.

  Installation
An nmake installation requires:
    $INSTALLROOT/
    	bin/
    		nmake
    	include/
    		ppdefault.h
    	lib/
    		cpp
    		make/
    			Makeinit.mk
    			@
    			_make_
    			ccinfo
    			ignore
    			makecc
    			makerules.mo
    			maketype
    			silent
@, _make_, ignore and silent are not needed if you are running ksh. The best way to install nmake in a new hierarchy is
    NEWROOT=new-root
    cd $INSTALLROOT/src/cmd	# as defined for nmake bootstrap
    $INSTALLROOT/bin/nmake install INSTALLROOT=$NEWROOT
If all users run ksh then the $INSTALLROOT hierarchy may be moved to $NEWROOT without recompilation. In this case non-ksh users must first export ROOT_nmake=$NEWROOT and ROOT_cpp=$NEWROOT.

  Base Rule Changes
If your nmake installation requires base rule (Makerules.mk) modifications you have several alternatives. First, the base rules (and the nmake engine, for that matter) are highly paramaterized on make variables. The base rule definitions may be overridden by defining new values in the environment, in makefiles, on the command line, in global makefiles, or by the file Localrules.mk . The last lines of Makerules.mk are
    #if exists("Localrules.mk")
    #include "Localrules.mk"
    #endif
Localrules.mk is not distributed with nmake. This allows you to safely augment the base rules by creating the file
    $INSTALLROOT/src/cmd/nmake/Localrules.mk
You can also redefine any of the base rule assertions by judicious use of .CLEAR and .INSERT, but be careful to preserve the base rule interface so that non-local makefiles are not broken. To install local base rule changes
    cd $INSTALLROOT/src/cmd/nmake
    # create Localrules.mk
    $INSTALLROOT/bin/nmake install
You are also free to change Makerules.mk itself, although you'll run into merge problems when nmake updates need to be incorporated. In this case just change the `create Localrules.mk' step above to `edit Makerules.mk' to install the changes.

Finally, if the changes are significantly different from Makerules.mk, create a new set of base rules (makerules is the default and genrules is an experimental alternative). Follow the naming convention *rules (e.g., altrules) and install
    cd $INSTALLROOT/src/cmd/nmake
    # create Altrules.mk
    $INSTALLROOT/bin/nmake install ALTRULES=Altrules.mk
The install command line target copies Altrules.mo to $INSTALLROOT/lib/make/altrules.mo (base name converted to lower case). Any makefile requiring altrules should have as its first line
    #rules "altrules"
If your alternate base rules really catch on then notify the nmake contact for possible inclusion in the nmake software distribution.

SEE ALSO
nmake(1)