---------------------------------------------------------------------- INTRODUCTION ---------------------------------------------------------------------- For a smooth installation, please read the following sections and then follow the instructions in the 'Installation Procedure' section. ---------------------------------------------------------------------- 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/" "..." 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 ---------------------------------------------------------------------- I tried to work on this but don't understand it at al. What's the relationship between the profile, the XAPPLRESDIR environment variable (or is it plural) and the Toolkit? Many user interface-level options can be changed by altering the value of the XAPPLRESDIR environment variable (which is specified with a profile component). The X-Toolkit uses this variable to 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 the "~/.Xdefaults" file, or copy a resource file into the home directory. The UNIX XAPPLRESDIR environment variable requires a directory specification, which can be specified with the XappResourceFile profile component and made available to Argus applications. XAPPLRESDIR is not set if 'XappResourceFile' does not have a value. 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". reword so it's not a double negative: active voice. 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".