Some notes on the MSDOS implementation of dmake.

Making the binary:
------------------

   Turbo-C:  By default the turbo-C (make tcc) script will make a version
	     of the binary that is compiled for an 8088 and up cpu.  Once made
	     you can make a version for a 186 or 286 by modifying
	     msdos/tccdos/config.mk and setting CFLAGS to contain the right
	     flags, comments are supplied in the makefile to do so.

	     The contents of the default response files
	     (named in msdos/tccdos/mk*.bat) assume specific locations for
	     your turbo-C libraries, you may need to edit these before actually
	     getting a successful binary linked.

   Microsoft-C 4.0 to 5.1:
	     Is straight forward, just type 'make msc' and the compile will
	     chunk along.

   Microsoft-C 6.0:
	     Is equally easy, just type 'make msc60' and the compile will
	     chunk along.  Once made, if you want to use dmake to compile
	     itself then set the environment variable MSC_VER=6.0, otherwise
	     the compile flags will not be correct.  You may also supply this
	     as an option on the dmake command line.

   Memory Requirements and Swapping:
	     dmake requires quite a bit of memory to run.  As a result
	     a swapping version of dmake is made if you issue the command
	     'make tccswp', 'make mscswp' or 'make msc60swp'.  If you leave
	     the 'swp' off then corresponding (as described above) non-swapping
	     versions are made.

	     The swapping code currently only swaps to DISK, I have left hooks
	     in to accomodate XMS and EMS, I have some code that performs the
	     necessary XMS/EMS accesses but have not incorporated it in yet.
	     It appears that a ramdisk seems to work just fine.  If anyone
	     wishes to fill in the hooks please do and I'll be happy to include
	     them in future distributions.

   dmake 'makefile.mk' control variables:
	     Initially dmake is compiled for the compact memory model.
	     Setting MODEL={s,c,m,l} on the command line will select a different
	     memory model.  Setting NOSWAP:=1 on the command line
	     will disable the compile and linking of the swap code.
	     A summary of the available configuration variables follows:

	          MODEL={s,c,m,l}  - Select {small, compact, medium, large}
		  		     memory model respectively.
		  NOSWAP:=y	   - If set, do not compile the dmake
		  		     swapping version of spawnvpe.
		  MSC_VER:=6.0	   - Must be set if using MSC 6.0 and dmake
		  		     is used to make a new version of dmake.

   ^C and stopping a make:
	     Handling of ^C in the swapping version seems to be somewhat
	     broken.  I don't know what is wrong and would be happy to hear
	     of suggestions on how to fix the current mess :-)  If you hit
	     ^C more than once when dmake is executing a child then I think
	     it will hang most machines.  If you hit it only once or not at
	     all then things seem to work fine :-).  I tried to get this right
	     by looking at other code, and making some assumptions about what
	     DOS does... NEVER ASSUME ANYTHING ABOUT WHAT DOS DOES :-)


Other notes:
------------
dmake does not care if you are running command.com or some other command
interpretter, you must however specify the proper values of the environment
variables SHELL, SHELLFLAGS, GROUPSHELL, and GROUPFLAGS in order for things
to work correctly.  Read the man page first.

Group recipes under DOS that use command.com as the command interpretter
require you to set the GROUPSUFFIX macro.

As shipped the startup.mk files for the DOS version try to figure out what
command interpretter you are using and set things up appropriately.
Two command interpretters are supported in the shipped startup.mk file,
command.com, and the MKS Korn shell.

dmake does not contain any builtin commands.  It gets all commands it executes
from an external file system.  It is therefore most useful if it is used in
conjunction with an environment similar to that provided by the MKS Tool kit,
or equivalent.

dmake now supports the MKS argument passing conventions.  The facility is
enabled by setting .MKSARGS:=1 and is set by default in the startup.mk file
if an MKS Korn shell is detected as being the active command interpretter.
