----------------------------------------------------------------------
			     INTRODUCTION
----------------------------------------------------------------------

For a smooth installation, please read the following sections and 
then follow the instructions in the 'Installation Procedure' section.

----------------------------------------------------------------------
			 Other documentation
----------------------------------------------------------------------
A complete document describing all aspects of the Argus system can be
found in the file "... /doc/argus.PS".

----------------------------------------------------------------------
			Notational convention
----------------------------------------------------------------------

Filenames are placed in double quotation marks.  The Argus software
is located in a directory tree with "argus/" as the root.
All absolute file references have the form:

	"... /argus/<file-name>"

"..." refers to the site-specific directory where the "argus/" directory
is placed.  Argus users must place this directory in their paths.

The notation "~/" (tilde slash) and $(HOME) both refer to a user's
home directory.

----------------------------------------------------------------------
			    Argus Profile
----------------------------------------------------------------------

Users can change a variety of operating characteristics by modifying 
the Argus profile.  Default values are set by the global Argus 
profile, called "... /argus/argusprofile.1.0". 

Each profile component (such as 'NextProfilePath') is followed by a colon
and a value.  Each profile component must appear on a separate line.
Comment lines begin with a pound sign ('#').  The string "($HOME)" is
used to indicate that the user's home directory should be used 
when an Argus application is executed.

An example of a profile component:

	NextProfilePath: $(HOME)/.argusprofile

Users can customize their interactions with Argus applications by copying 
the global profile "... /argus/argusprofile.1.0" to file called 
"~/.argusprofile".   The user may delete unchanged profile components,
to speed execution time.

IMPORTANT:  The user should set the component called 'NextProfilePath'
to something OTHER THAN "($HOME)/.argusprofile", e.g. ($HOME)/.argusprofile2.
The latter file need not exist.

----------------------------------------------------------------------
	     X resources
----------------------------------------------------------------------
In order to facilitate development in the Athena environment Argus
applications use a profile component to specify the value of the
XAPPLRESDIR environment variable.  The value of this environment
variable is used as a directory where the X-Toolkit will look for
class specific application resource files.  The class name of all
Argus X Applications is "Argus".  

If the installer of Argus cannot (for whatever reason) place the file
"Argus" in the application-specific class resource file directory (e.g.
/usr/lib/X11/app-defaults/ on UNIX systems), Argus can still offer 
users a global resource file without having to set the UNIX environment 
variables XAPPLRESDIR or XENVIRONMENT, copy resources into their
 "~/.Xdefaults" file, or copy a resource file into their home
directory.  Any Argus X application will set the XAPPLRESDIR
environment variable to the value of the profile component
'XappResourceFile'.  That is, Argus X Applications will set the value
of the UNIX environment variable XAPPLRESDIR to the value of the Argus
profile component 'XappResourceFile'.  If 'XappResourceFile' does not
have a value then XAPPLRESDIR is not set.

If the Argus resource file ("... /argus/lib/app-defaults/Argus") can
be placed in the Application specific class resource file directory
(i.e. /usr/lib/X11/app-defaults on UNIX systems) then the installer
should remove the value from the 'XappResourceFile' profile component
in the file "... /argus/argusprofile.1.0".  This will have the effect
of forcing Argus not to set the UNIX environment variable XAPPLRESDIR
when any Argus X applications are run.



======================================================================
			INSTALLATION PROCEDURE
======================================================================

I.		*****   Redoing the Makefile  *****

The source makefile is called "... /argus/src/Makefile-source".  The
installed makefile should be called "... /argus/src/Makefile".  There
is an installed version of the Makefile (shipped as an example) called
"... /argus/src/Makefile-athena".

All the places in the Makefile that need attention have the line 
"#---INSTALLATION ---" above a description of the decision which has to
be made.

1. Modify the constant PLACE to be the directory where you have
installed the argus directory.

2. In order to get around an mh mail handler installation bug at
Athena (which other sites also have), we have had to hard code the
path of the mh command 'rcvstore'.  This is because it was not placed
in the normal bin along with the other mh commands.  The constant
AlMH_RCVSTORE_PATH should be set to the full path name of the mh
'rcvstore' command if your site also has this problem.  If your site
does not have this problem, set the constant to just 'rcvstore'.

2. Modify the constants MOTIF_INCLUDE_DIR and MOTIF_LIB_DIR to be the
Motif include directory and the Motif library directory respectively
on your system.

3. The argus anyone server must get special user information.  If your
system uses Project Athena's Hesiod name server, you must set three
constants.    If your system used the standard UNIX function
getpwnam() to get user password information, comment out these three
constants from the Makefile.

	a. HESIOD_LIB         The Hesiod library used for linking.
	b. HESIOD_LIB_DIR     The location of the Hesiod library.
	c. HESIOD_COMP_FLAG   If commented out, the Argus anyone server
	   will use the UNIX function getpwnam().  If not commented
	   out the Argus anyone server will use the Hesiod function 
	   hes_getpwnam().

4. Argus applications use the "const" identifier. Since support for
the identifier "const" in the C programming language is
compiler-dependent, you must allow or inhibit this functionality on the
compiler command line.  To inhibit the use of "const" uncomment the
definition of COMPILER_CONST_FLAGS.  If your compiler supports the
"const" identifier comment out that definition.

5. --OPTIONAL DEBUGGING INFORMATION--
If you would like to receive memory usage information and debugging
information from Argus applications, insert the following definitions
into the COMPFLAGS definition:

		-DMEMORY_LEAK_COUNT=1
		-DMEMORY_CHECK_POINTERS=1 

If you would like to receive debugging information from the message
object insert this definition into the COMPFLAGS definition:

		-DMSGDEBUG=1

Note that increasing the value for MSGDEBUG increases the amount of
debugging information.

If you would like to have the ArgPack object do extra robustness
checking (useful if you are modifying Argus and suspect a bad
pointer somewhere)  insert this definition into the COMPFLAGS
definition: 

		-DARGPACK_DEBUG=1

If you would like to get debugging information from the Argus rule
editor  insert this definition into the COMPFLAGS definition:

		-DRE_DEBUG=1



II.		*****   Redoing the Argus Profile  *****

You must create a site-specific Argus profile, based on a copy of
"... /argus/argusprofile-source".  The installed version should be
called "... /argus/argusprofile.1.0".  There is an installed example
version of the profile for use here at Athena called
"... /argus/argusprofile.1.0-athena". 

All of the profile components that need changing in order for Argus
applications to work have the string $(PLACE) in them.  The installer
should replace the string $(PLACE) with the full pathname of the argus
directory.  The last directory name of this path should be "argus".
An example path name to replace the $(PLACE) string with would be:
"/afs/athena/astaff/project/argus".  Note that this should be the same
pathname used to define the PLACE constant in "Makefile-source".


III. 		***** Message Type Registry *****

The program "Message Type Editor" was not updated as part of the 
conversion of Argus from  Athena widgets to Motif.  One of the 
implications of this is that Argus currently supports only one 
set of message types, that are found in a file called
".../argus/lib/msgregistry".  Updates to this file can be
made with a text editor, following the format of the sample 
file.

To support future extensions to message types, Argus uses a file
called "...argus/lib/msgregistry.init" which contains the full path
names of all known message type registries.  Replace the single line
in the file "... /lib/msgregistry.init" with the full path name of the
file "... /lib/msgregistry".


