	    	DMAKE UNPACKING AND INSTALLATION INSTRUCTIONS

DMAKE is available in several formats:  a compressed tar src archive,
a compressed shar src archive, a pkzip src archive, or a pkzip MSDOS-executable
archive.  Refer to the appropriate section below for unpacking instructions.
In each instance the archive creates a new directory named 'dmake' and
extracts all relevant files to that sub-directory.


1. UNPACKING THE DISTRIBUTION FILES

   OPTION 'A' (compressed tar src archive):
   --------------------------------------
   Assumption:  The current directory contains the latest version of dmake in
		the file 'dmake.tar.gz' or the file 'dmake.tar.Z'. 

   This file is a standard GNU zip compressed tar archive.  To unpack the file
   issue the following command.  gunzip is available for most UNIX platforms
   as well as DOS.

	   gunzip -c dmake.tar.gz | tar xf -
   or
	   zcat dmake.tar.Z | tar xf -


   OPTION 'B' (compressed shar src archive):
   -----------------------------------------
   Assumption:  The current directory contains the latest version of dmake in
		the files 'dmake.shar.XX.gz'.  Where XX are the sequence numbers
		for the shar files.

   To unpack the shar files you must uncompress them first, and then run the
   output through /bin/sh, or some other popular shar archive extraction tool.  
   The following csh script should do the trick:

	   foreach i (dmake.shar.*)
	      gunzip $i
	      sh < `basename $i .gz`
	   end


   OPTION 'C' (src zip archive):
   -----------------------------
   Assumption:  The current directory contains the latest version of DMAKE in
		the file dmake.zip.

   To unpack the full zip distribution simply use pkunzip with the
   following command:

	   pkunzip dmake.zip
   or
	   unzip dmake.zip


   OPTION 'D' (MSDOS-executable zip archive):
   ------------------------------------------
   Assumption:  The current directory contains the latest version of the DMAKE
		MSDOS executable files in the file dmexe.zoo.

   To unpack the source-less MSDOS executable distribution use pkunzip
   with the following command:

	   pkunzip dmexe.zip
   or
	   unzip dmexe.zip

   Please skip section (2) below and go directly to Section 3 (Configuring the
   executable) for further installation instructions.


2. BUILDING THE EXECUTABLE

   The only supported method for building a new executable from a fresh or
   patched distribution is to use the self building scripts rather than DMAKE
   itself.  This is necessary in order to allow for the use of new DMAKE
   features and functionality in the DMAKE 'makefile' itself.  Once built
   the DMAKE executable can be used to build new versions of DMAKE by setting
   the environment variables defined in Section 4 below.

   To determine the set of supported environments issue the following
   commands:

	cd src
	make

   The output of this command will be a set of arguments representing the
   supported environments that DMAKE can be compiled in.  Choose the one
   that most closely represents your environment and issue the command:

	make environ_tag

   where 'environ_tag' is from the previous list, for example on a Solaris
   System the option is Solaris, so you would issue the command 'make Solaris'.

   The script runs the appropriate set of commands; upon completion the file
   'dmake' is found in the current directory as is the file startup.mk.
   The first is the binary executable and the second is the initial DMAKE
   startup file.  The startup file is read by DMAKE each time it is invoked to
   process a user makefile.

   Before issuing the build command read Section 3 and decide if you need
   or want to modify the precompiled value of MAKESTARTUP as described
   below.

   During the build it is safe to ignore any warnings that may
   get generated by the build.


3. CONFIGURING THE EXECUTABLE

   Once built you must place the executable into the location where your
   system finds executables.  DMAKE looks for the file 'startup.mk' before
   processing any user makefiles.  To discover where DMAKE searches for this
   file issue the command:

	dmake -V

   one of the lines printed will be of the form:

	MAKESTARTUP=$(ROOTDIR)/.../startup.mk

   This is the path where DMAKE will look for the file 'startup.mk'.  The
   value of ROOTDIR is imported from the environment and is assumed to be NULL
   if not set.

   You have three options:

	1. Place the startup.mk file found in the 'src' directory into the
	   path specified by the path given in the MAKESTARTUP definition.

	2. Define the environment variable MAKESTARTUP to point to the path
	   where 'startup.mk' may be found.  For example if you place
	   'startup.mk' into the directory '/u/joe/lib' then you may define
	   MAKESTARTUP in your environment to have the value:

	      "/u/joe/lib/startup.mk"

	3. Recompile DMAKE with the proper value of startup.mk hard-coded into
	   the binary.  In order to perform this follow these steps:

	      a) copy the file src/unix/startup.h to the src directory
	      b) edit the file and change the string definition (follow
	         instructions in the file)
	      c) Rebuild the executable.  
	      d) NOTE:  If your compiler searches for include files in a
		 non-sensible way this may not work and you may have to edit
		 the file in-place.  If you are building a DOS executable the
		 startup.h file is found in the msdos, instead of the unix,
		 subdirectory.  The same is true for other non-unix operating
		 system combinations.  In the event that step c) does not work
		 refer to the appropriate directory.


4. DMAKE SPECIFIC ENVIRONMENT VARIABLES 

   In order to use DMAKE to recompile itself you must define the following
   three environment variables in addition to MAKESTARTUP.

	OS            - Specifies the flavour of operating system.
	OSRELEASE     - Specifies the particular version of the operating
		        system.
	OSENVIRONMENT - An optional configuration parameter for the operating
			system release.

   Specific values for these variables can be found in each of the operating
   system specific files named in the 'readme.1st' file.  You should have
   to deal with this only if you are modifying DMAKE and making frequent
   changes to the source.  In these circumstances you will want to recompile
   only the effected files rather than the entire source and you must set
   the value of the environment variables to reflect your environment.
