diff options
Diffstat (limited to 'doc/unixiraf.hlp')
-rw-r--r-- | doc/unixiraf.hlp | 833 |
1 files changed, 833 insertions, 0 deletions
diff --git a/doc/unixiraf.hlp b/doc/unixiraf.hlp new file mode 100644 index 00000000..448013e9 --- /dev/null +++ b/doc/unixiraf.hlp @@ -0,0 +1,833 @@ +.help install Mar86 "UNIX/IRAF Installation Guide" +.sp 3 +.ce +\fBUNIX/IRAF Installation and Maintenance Guide\fR +.ce +(draft) + +.ce +Doug Tody +.ce +March 13, 1986 + +.nh +Introduction + + The procedure for installing IRAF on a UNIX host is complicated by the +great variety of computers which run UNIX, by the many small differences in +the operating system software on these machines, and by the hardware +differences between the machines. In general, the IRAF system can be ported +with a modest effort to any UNIX host which has a reliable and reasonably bug +free Fortran compiler (this cannot be taken for granted). From the standpoint +of ease of installation and reliability, the ideal case is a VAX running 4.2BSD +Berkeley UNIX (or ULTRIX, which is the same thing), since that is the +configuration we run on the IRAF software development machine. +NOAO has also recently ported the system to a SUN workstation running the +SUN version of 4.2BSD UNIX. This is a new system which has not yet seen +heavy use within NOAO and which cannot therefore be said to be as well +tested as the VAX version, but it is already clear that it will be a good +host (the initial port took only a few hours). + +Other ports, e.g., to other workstations or to System V UNIX, have been +talked about and are certainly feasible, but NOAO cannot presently support +such systems since we do not use them internally. This should not discourage +others from developing such systems, as other advantages may outweigh the +expense of having to port and support IRAF locally. To the extent that we +are able, we will be glad to assist with such ports. In the remainder of +this document, we shall assume that the host operating system is some variant +of 4.2BSD Berkeley UNIX. + +The ideal case of installing a "load and go" distribution tape containing +a precompiled and prelinked system is easy, except possibly for the graphics +interfaces. There are various levels of installations beyond this, becoming +progressively more involved, with a port of the system to a new version of +UNIX being the most ambitious. The possible levels of installations are +summarized below. +.ih +Load and Go +The system is read onto disk, several links are made in the UNIX system +directories providing hooks into the system, and the device and network tables +are tailored for the local system. +.ih +Load and Relink +This is like load and go, except that the system was shipped without the +executables to save space. Relinking is necessary but the relinking procedure +is fully automated and does not significantly increase the difficulty of the +installation. +.ih +Full Sysgen +In this case the system tables have already been configured for the host +machine, but neither the executables nor object libraries can be used for +some reason, e.g., because we are starting with a source only distribution. +The sysgen procedure is fully automated and in principle should pose no more +problems than a relink, but in practice it is unusual to get through a full +sysgen on a new machine without encountering compilation errors, usually +due to obscure errors in the Fortran optimizer. This sounds bad, but one can +usually hand compile the affected files with the optimizer turned off, and +then restart the sysgen, which will automatically pick up where it left off. + +On the VAX we routinely perform full system sysgens without any problems +whatsoever. A full sysgen on a VAX 750 class machine requires about 45 +minutes for the bootstrap (building the host interface), plus another 20 +hours to compile and link the machine independent part of the system. +.ih +Port to a New System +To port IRAF to a new version of UNIX requires some modifications to the +files in the host interface directories, followed by a full sysgen and lots +of testing. Typically most of the code in the host interface can be used +without change, with only minor changes to the remaining code, since the +different versions of UNIX are quite similar (as compared to, for example, +a port to a completely different operating system like VMS or AOS/VS). + +Note that even when the target system is a "fully compatible" 4.2BSD UNIX +system, some changes are likely to be necessary since all of these systems +are slightly different. For example, the SUN and ISI implementations of +4.2BSD UNIX employ different assemblers, and the Fortran compilers on the +two systems have diverged considerably. A port to Bell System V or one of +the UNIX look alikes would certainly require some changes to the IRAF kernel, +particularly in the exception handling, process control, and network interface +facilities. + +The changes required are likely to be minor for someone sufficiently familiar +with both IRAF and UNIX, but should not be underestimated. Every new port +produces its share of compile time errors (due to differences in the Fortran +compilers) and finds a few new bugs, both in the IRAF software and often in +the host Fortran compiler as well. A thorough understanding of both IRAF and +the host system is required to rapidly isolate such bugs. +.in -4 + +Fortunately, a port only has to be done once and most of the sites receiving +UNIX/IRAF will not need to do more than a relink or a sysgen, both of which +are straightforward. Many sites will not even need to relink, in which case +the installation is trivial. + +Once the basic system is functioning, it is still necessary to edit the device +and network tables to interface IRAF to the local terminals, printers, magtape +devices, describe the nodes in the local network, and so on. +Once that is done only the graphics device interfaces are left. +Conventional graphics terminals, i.e., Tektronix +compatibles with a serial interface, are not difficult. The worst case is +a new bit mapped display or image (greyscale) display device, which may +require the implementation of a new IRAF GIO graphics kernel for the device. + +The IRAF system is organized in such a way that the machine and device +dependent software is stored separately from the bulk of the software, +which is machine and device independent. This should make it relatively +easy to install new revisions of the system, provided the host and device +interfaces do not have to be modified. The procedure for installing a +minor revision is simply to read the revision tape into the system (containing +the BIN, DOC, LIB, SYS, PKG, and MATH directories), and then possibly do a +partial or full sysgen, depending upon whether the distribution included +executables and objects. The local device and network tables will not be +affected since they are stored in different directories (HOST and DEV) than +those on the tape. Note that a "minor" revision actually updates virtually +the entire system, since the host system interface is small compared to the +rest of the system. + +When a major revision is received it will be necessary to reinstall the +full system, but it is likely that the old device tables can be kept and +used in the new system, in which case even a full installation should only +take a couple of hours, excluding the time for a full sysgen if such is needed. +Once the initial version of IRAF has been installed, the procedure for +installing a minor revision is identical for all systems, including such +systems as VMS and AOS/VS as well as UNIX. + +Sites which are actively using IRAF will probably want to keep their systems +up to date, as the system is continually evolving and improving, and new +software is continually being added. To ensure that it will be easy to +install future updates, it is wise to store locally added software outside +the standard system, and to keep a log of all revisions, if any, made to +the standard system. The subdirectory LOCAL (off the IRAF root directory) +is provided for this purpose. NOAO should be informed of any local revisions +or bug fixes so that we have the opportunity to incorporate them in the +standard system. + +.nh +Installing the System +.nh 2 +Initial System Installation + + This section documents the procedure for installing a binary distribution +tape prepared on a compatible (VAX or SUN) system at NOAO. The procedure +outlined in this section is also used to install a source distribution, the +difference being that when one is done it is still necessary to do a sysgen +to compile and link the system. + +Few problems are expected when installing binary distributions for the VAX, +since all VAX hardware and (UNIX) software is pretty much the same. +For a system like the SUN this is not necessarily the case, e.g., a SUN-3 +distribution will have to be recompiled to run on a SUN-2, and a SUN-2 +distribution compiled with inline floating point instructions for the SKY +floating point board will have to be recompiled if the SKY board is not present. +Conversely, a system compiled with the SUN-2 portable floating point interface +will run whether or not the SKY board is present, but it might be desirable +to recompile the system with the inline code generation option, just for the +added speed. If you have received a binary SUN distribution, be sure to +check the system (SUN-2/3), operating system version, and floating point +compiler option used for compatibility with your system. + +.nh 3 +Create an IRAF Account + + The first step is to set up an account for IRAF. The pathname to the +root directory does not matter, but it is wise to keep it short to speed up +pathname resolution and to minimize the possibility of filename truncation. +The account should be set up to use \fBcsh\fR as the shell. The disk +partition containing IRAF should have about 45 Mb of space available for +the system; if necessary, the system can be stripped later to save space, +but the full 45 Mb is required for the installation. + +In what follows, we shall refer to the IRAF root directory as "$iraf", +as if it were a cshell \fBsetenv\fR variable. It is not however necessary to +define such a variable at this point, provided you do not try to type it +in as shown in the examples (type in the full pathname instead). + +.nh 3 +Read the Distribution Tape + + The system is distributed on one or more TAR format tapes or cassettes. +Login as IRAF, go to the IRAF root directory, and enter the \fBtar\fR command +shown for each tape in the distribution kit. The order in which the tapes +are read is not important. + +.ks +.nf + % cd $iraf + % tar -xpf /dev/XXXX +.fi +.ke + +The full system contains approximately 6000 files in over 200 directories; +the \fBtar\fR flags -tv are not recommended, as printing the filename can +slow things down considerably. It typically takes a half hour or so to read +the tapes. + +.nh 3 +Set up the Host System Environment + + Login as root (type \fIsu\fR) and modify the IRAF account to make +$iraf/local the login directory for user IRAF (this is done by editing the +/etc/passwd file - use \fIvipw\fR). Enter the following commands to enable +device allocation within IRAF. This only works if you have a binary +distribution; if not, it must be done later after the system has been +bootstrapped. + +.ks +.nf + % cd $iraf/unix/hlib + % /etc/chown 0 alloc.e # (zero, not "oh") +.fi +.ke + +While still logged in as root, make the following symbolic links in the +standard UNIX directories. We assume here that local utility programs are +installed in /usr/bin, but a different directory may be used for this +purpose on your system (any public directory which is in the default \fIpath\fR +for the average user will do). Since these are symbolic links, this +step may be performed even if a source distribution is being installed. + +Symbolic links are preferred to file copies because IRAF is a self contained +system and is not set up to install executables, etc. in external host system +directories. Symbolic links also eliminate the possibility of the installed +version of the file being obsolete. Although we use links here, no links are +used within the IRAF system itself. + +.ks +.nf + % cd /usr/include + % ln -s $iraf/unix/hlib/libc/iraf.h . + % cd /usr/bin + % ln -s $iraf/bin/cl.e cl + % ln -s $iraf/unix/hlib/mkiraf.csh mkiraf + % ln -s $iraf/unix/hlib/mkpkg.e mkpkg +.fi +.ke + +The following additional links are optional but are desirable if any IRAF +programming is anticipated. An alternative is to "source" the file +"$iraf/unix/hlib/irafuser.csh" in one's .login file (this only works for cshell +users). + +.ks +.nf + % ln -s $iraf/unix/hlib/generic.e generic + % ln -s $iraf/unix/hlib/rmbin.e rmbin + % ln -s $iraf/unix/hlib/rmfiles.e rmfiles + % ln -s $iraf/unix/hlib/rtar.e rtar + % ln -s $iraf/unix/hlib/wtar.e wtar + % ln -s $iraf/unix/hlib/xc.e xc +.fi +.ke + +Logout of root. If this is done by exiting "su", type "rehash" to make the +cshell aware of the new programs. + +.nh 3 +Configure the IRAF Environment + + While once again logged in as IRAF, edit the .login file in the IRAF +login directory $iraf/local. The \fBsetenv iraf\fR definition must be +changed to reflect the new IRAF root directory; everything else is optional +and may be personalized if desired. Note that IRAF assumes that all host +directory pathnames may be concatenated with a filename to produce the +pathname of the file, hence the directory pathname MUST end with a slash, +contrary to normal UNIX convention. + +.ks +.nf + % cd + % vi .login + % source .login +.fi +.ke + +After editing the .login file, "source" it to pick up the new environment +definitions. Hereafter we shall assume that the directories $iraf, $hlib, +etc. have been defined in the cshell environment by the .login file. At this +point you may want to read the file $hlib/irafuser.csh to see what has been +defined. + +There are several files in $hlib (the host system interface library) which +must now be edited to reflect the host system. Edit the following definitions +in the file $hlib/mkiraf.csh (the trailing slashes are omitted in this case +because this script is pure UNIX). The \fBmkiraf\fR script is run by the user +to autoconfigure the IRAF environment; see the CL User's Guide for additional +information on the use of this task. + +.ks +.nf + set iraf = "/iraf" + set imdir = "/tmp2/iraf" + set ttymsg = "Terminal types: vt100=basic terminal, ..." +.fi +.ke + +Set the value of \fBimdir\fR to the pathname of a public scratch directory +to be used for the storage of bulk image data. The \fBmkiraf\fR script +will create the default user image storage directories as subdirectories of +this directory. A scratch rather than user (login directory) file system is +normally used for this purpose to avoid storing bulk data on a backed up +user file system, and to facilitate the use of file deletion daemons to +automatically delete old files. Note that the user may override the default +\fBimdir\fR pathname defined in the LOGIN.CL file created by \fBmkiraf\fR. + +The \fBttymsg\fR prompt string is printed by the script to help the user +set the default terminal type for IRAF. Each terminal must have an entry +in the IRAF (not UNIX) \fBtermcap\fR file. + +Now descend to the subdirectory LIBC and edit the file "iraf.h", for which +we earlier made a symbolic link. This global C header file is required to +compile any IRAF C sources, and is also used by the system at runtime to +determine the IRAF root directory, as well as the pathnames of the HOST +and TMP logical directories. The definition of TMP defaults to the standard +UNIX /tmp and should not have to be changed. Make the obvious change to +the definitions of HOST and IRAF; HOST is the unix pathname of $iraf/unix. +This has to be defined at the system level because HOST might be, for example, +$iraf/vms instead of $iraf/unix. HOST is the root directory of the IRAF +host system interface. The remainder of the file contains many occurrences +of the pathname to the IRAF root. Use global replacement to change all +these definitions to the new IRAF root. + + +Assuming a full binary distribution, it should now be possible to return to +the IRAF login directory, type \fBmkiraf\fR to configure the IRAF environment, +and then \fBcl\fR to log into IRAF. Indeed, any user should be able to do +the same at this point. + +.ks +.nf + % cd + % mkiraf + % cl +.fi +.ke + +.nh 2 +Relinking the System + + Relinking the system is necessary if the system was shipped without +the executables in the BIN directory. In order to relink the system must +first have been \fIbootstrapped\fR. When the system is shipped without +executables (to save space) it will already have been bootstrapped. +If it is necessary to bootstrap the system, e.g., given a source only +distribution, go read section 2.4 before trying to relink the system. + +The system is relinked by the bootstrap utility program \fBmkpkg\fR. +The \fBmkpkg\fR program is driven by the MKPKG files found in all IRAF +source directories. Running \fBmkpkg\fR in a directory causes the +contents of that directory, normally an applications package or library, +to be updated, along with the contents of all subdirectories referenced +by the root MKPKG file. + +Running \fBmkpkg\fR in the root IRAF directory causes the entire system to +be updated. If the system libraries are all up to date, the effect is to +relink the system. If the system has been modified and some library modules +have to be recompiled and inserted into the system libraries, then the +operation is a partial sysgen. If there are no libraries or object libraries +then we have a full sysgen, which is the topic of the next section. +The \fBmkpkg\fR utility is documented in detail in the IRAF User's Guide, +in the manual pages for the \fBsoftools\fR package. + +To relink all of IRAF, go to the root and run \fBmkpkg\fR, i.e., + +.ks +.nf + % cd $iraf + % mkpkg +.fi +.ke + +The program will inspect all source modules and verify that the system +libraries are up to date, then relink the system executables, followed by +all the applications executables, installing the executable files in the +BIN directory. + +.nh 3 +Relinking Individual Packages + + It is just as easy to relink the individual IRAF packages, e.g., after +a bug has been fixed, or if an update of a package is received by electronic +mail. This would normally be done from within IRAF since the next step +is to test the new package, so we will use the "cl>" prompt in the examples, +but since \fBmkpkg\fR is a bootstrap utility (IRAF foreign task), usage is +the same both in IRAF and in UNIX. + +To relink a package and install the new executable in BIN: + + cl> mkpkg update + +To relink a package, leaving the executable in the package directory for +testing or debugging prior to installation: + + cl> mkpkg + +To install an already linked executable after testing: + + cl> mkpkg install + +To update only the package library without relinking (this assumes that the +name of the library is LIBPKG.A): + + cl> mkpkg libpkg.a + +The "update", "install", and "libpkg.a" identifiers are entry points in the +MKPKG file, which may be read to see what is going on. + +As an actual example of a package relink, suppose we wanted to increase the +size of the stack area in the CL to 8000 elements, e.g., because the CL was +running out of space at runtime. We would go to the CL directory, edit +the file CONFIG.H, change the value of STACKSIZ to 8000, and then run +\fBmkpkg\fR: + +.ks +.nf + cl> cd cl + cl> ed config.h + cl> mkpkg update +.fi +.ke + +Since CONFIG.H is included by nearly all the CL source files, the entire +package would be recompiled unnecessarily, but it is safer that way. + +.nh 2 +Autogeneration of the System (SYSGEN) + + A full system sysgen is necessary when installing a source only version +of the system. The system must first have been bootstrapped; see section +2.4 if this has not yet been done. A full sysgen may also be necessary if +a binary distribution has been received but it is later discovered that it is +necessary or desirable to recompile the system. In this case the existing +libraries and objects must be deleted before the sysgen, else the sysgen +will be nothing more than a relink. The \fBrmbin\fR utility is used to +descend a directory tree, deleting all binary files therein. Note that +the ONLY case in which it is necessary to use \fBrmbin\fR is when we wish +to force the entire system to be recompiled. The \fBrmbin\fR task is yet +another bootstrap utility, and is documented in the manual pages for the +\fBsoftools\fR package. + +.ks +.nf + % cd $iraf + % rmbin -vi bin lib pkg sys +.fi +.ke + +This will delete all binaries in the portable part of the system, excluding +the HOST or UNIX directories (if you run \fBrmbin\fR on UNIX, you will have +to bootstrap the system as well). + +Before starting the full system sysgen it may be desirable to review the +switches in the file MKPKG.INC in the HLIB directory. +This is the global include file for the \fBmkpkg\fR utility, +and contains various switches controlling \fBmkpkg\fR, e.g., which packages +will be compiled, and the default compiler and linker flags. + +Since a full sysgen takes a long time and generates a lot of output which +later has to be reviewed, they are always run in batch with the output +redirected, e.g.: + +.ks +.nf + % cd $iraf + % mkpkg >& spool & +.fi +.ke + +To watch what is going on after this command has been submitted and while +it is running, try + + % tail -f spool + +Sysgens are restartable, so if the sysgen aborts for any reason, simply +fix the problem and start it up again. + +A full sysgen generates a lot of output, too much to be safely reviewed for +errors by simply paging the spool file. Enter the following command to review +the output (this assumes that the output has been saved in a file named +SPOOL). + + % mkpkg summary + +It is normal for a number of compiler messages warning about assigning +character data to an integer variable to appear in the spooled output. +These are harmless on most (but not all) machines, and are due to questionable +coding practices in the old (pre-F77) NCAR graphics utilities. Hopefully the +problem will be fixed in an upcoming release by NCAR. + +The discussion up to now has centered on the full system sysgen. +Partial sysgens are actually much more common. For example, if an important +bug is fixed in the VOS or in the IRAF kernel, a (partial) sysgen should be +conducted to recompile the affected modules and relink the system. +An example of this occurs when the \fBtermcap\fR or \fBgraphcap\fR entries +for important local devices are cached by running the \fBttycompile\fR +task (another \fBsoftools\fR utility). A sysgen is required after regenerating +the cache tables, since these must be compiled and linked into the affected +programs to have any effect. + +.nh 2 +Bootstrapping the System + + A bootstrap is like a full system sysgen, except that it is the host +system interface (kernel and bootstrap utilities) which are compiled and +linked, rather than IRAF itself. The system must be bootstrapped before +a sysgen is possible, since the bootstrap utilities are required to do a +sysgen. The two operations are distinct because only the bootstrap is +machine dependent; everything else works the same on all IRAF systems. + +The bootstrap operation is necessary when installing the system from a +source only distribution tape. We assume that the files in the host system +interface have already been configured for the host system. If this is +not the case, then we are doing a port, which is a lot more ambitious than +a simple bootstrap. + +To bootstrap UNIX/IRAF, go to the UNIX directory and interpret the shell +script MKPKG.CSH. This takes about 45 minutes, so the output should be +spooled in a file. Note that (for no good reason) the files have a .CSH +extension even though we have chosen to use the Bourne shell to execute +the commands therein. + +.ks +.nf + % cd $iraf/unix + % sh -x mkpkg.csh >& spool & +.fi +.ke + +A bootstrap recompiles everything whether it needs to or not, so it is +usually not necessary to delete the binaries before doing a full bootstrap. + +.nh 2 +Configuring the IRAF Device Tables + + The following files should now be edited to define the default terminal, +printer, editor, and so on for your system. Any part of this can be left +until later if desired. + +.ls 4 \fB$hlib/zzsetenv.def\fR +This file contains the name of the default editor, the default names of all +the standard devices, and a number of other definitions which are not site +dependent and which can therefore be ignored. To be accessible by the IRAF +system, each local device named must also have an entry in the TERMCAP file +(terminals and printers) or GRAPHCAP file (graphics terminals and image +displays) in DEV. There must also be an "editor.ED" file in DEV +for the named editor; EDT, EMACS, and VI are currently supported. +Edit the string to the right of the equals sign for the following entries. +Sample values are shown. + +.ks +.nf + set editor = "vi" + set printer = "imagen" + set stdgraph = "vt640" + set stdimage = "iism70l" + set stdplot = "versatec" + set terminal = "vt640" +.fi +.ke + +For example, you may wish to change the default editor to "emacs" (heaven +forbid), the default printer to "versatec", the default image display to +"iism75", and the default terminal to "vt100". Note that only the IIS model +70 and 75 image displays are directly supported by the current system. +Display code is also available for the DeAnza displays from STScI for VMS +hosts, but nothing is currently available for UNIX hosts (NOAO will directly +support the DeAnza sometime in 1986). The complex issues of the graphics +and display interfaces are discussed more fully in a later section. +.le + +.ls 4 \fB$iraf/dev/devices\fR +This file contains a list of the allocatable devices (primarily tape drives) +for the local system. It should be obvious how to change it by reading the +comments in the file and studying the current values, which are for our system. +.le + +.ls 4 \fB$iraf/dev/termcap\fR +There must be entries in this file for all local terminal and printer +devices you wish to access from IRAF (there is no \fBprintcap\fR file in IRAF). +The entry for a printer contains one special (non-\fBtermcap\fR) entry, +called DD. This consists of three fields: node!device, the template for the +temporary spoolfile, and the UNIX command to be used to dispose of the file to +the printer. On Berkeley UNIX it is rarely necessary to make use of the node +name capability, since the UNIX \fBlpr\fR already provides this capability. + +If you have a new terminal which has no entry in the termcap file provided, +you probably already have an entry in the UNIX termcap file. Simply copy it +into the IRAF file; both systems use the same termcap database format. +.le + +.ls 4 \fB$iraf/dev/graphcap\fR +There must be entries in this file for all graphics terminals, batch plotters, +and image displays accessed by IRAF programs. Weird graphics terminals will +need a new entry. The IRAF file "sys$gio/doc/gio.hlp" contains docs for +graphcap. A printed copy of this document is available upon request, however +once IRAF is up you may find it easier to generate your own copy using HELP, +as follows: + +.nf + cl> cd sys$gio/doc + cl> help gio.hlp fi+ | lprint +.fi + +The manual page for the \fBshowcap\fR task should also be printed since this +utility is useful for generating new graphcap entries. More focused +documentation will be available eventually. Telephone consultation is +available for those who need it. We ask that new graphcap entries be sent +back to us so that we may include them in the master graphcap file for other +sites to use. +.le + +.ls +The DEV directory also contains a number of files (HOSTS, HOSTLOGIN, and UHOSTS) +used by the IRAF network software. We depend upon the networking capabilities +of IRAF heavily at NOAO to access image displays, printers, files, etc. resident +upon remote nodes (the IRAF network interface is also capable of spawning +subprocess and background jobs on remote nodes, and works even when the nodes +run different host operating systems, e.g., both UNIX and VMS). + +We expect that most sites will not need this capability initially, hence +documentation of the networking software will be left for later. For sites +that want to try it out, all that is necessary to enable networking is to +edit the three networking files in the DEV directory, and install IRAF on +the other nodes. It does not matter what native operating system runs on the +remote nodes, so long as it runs IRAF as well. The source for the network +interface is in the sys$ki directory, and a discussion of the conceptual +design of the interface is given in the README file in that directory. +.le + +.nh 2 +Login to IRAF and Run the Test Procedure + + Congratulations! You should now have a fully functional IRAF system. +At this point it would probably be wise to read the CL User's Guide, +if you have not already done so. Once the IRAF environment is configured +with \fBmkiraf\fR (discussed earlier) one need only enter the CL command +to start up the CL. After a bit IRAF should print the message of the day +and the root menu, and issue the "cl> " prompt. + + % cl + +Once in the CL, you will probably have magtape and printer access, are likely +to have graphics terminal access, and very possibly will not have either +image display access or graphics plotter access. If the graphics terminal +capability is ready the next step is to run the IRAF test procedure to +verify that all is working well, as well as try out a few of the many tasks +in the system. If the graphics terminal is not up yet, there is probably +no point in running the test procedure. To run the test procedure, read +the documentation in volume 1A of the IRAF User's Guide and follow the +instructions therein. + +.nh +Tuning Considerations + + There are two things that are commonly done to tune UNIX/IRAF for a +particular host system: + +.nf + o Precompile selected TERMCAP and GRAPHCAP entries + o Strip the system to reduce disk consumption +.fi + +.nh 2 +Precompiling TERMCAP and GRAPHCAP Entries + + Precompilation of a termcap or graphcap entry is a technique used to +speed runtime access of the entry for that device. If the entry is not +precompiled the termcap or graphcap file must be physically opened and +scanned at runtime to read the desired entry. This causes a noticeable +delay of as much as a second when clearing the terminal screen or plotting +a graph, hence it is usually worthwhile to cache the entries for commonly +used video and graphics terminals. It is not worthwhile for printers, +plotters, and image displays. + +The system comes with selected termcap and graphcap entries already +precompiled. To see which devices are precompiled, page the cache data +files, dev$cachet.dat (for termcap) and dev$cacheg.dat (for graphcap). +To cache a different set of entries one must regenerate these files with the +\fBmkttydata\fR task in the \fBsoftools\fR package, and then do a full +sysgen with the \fBmkpkg\fR utility. Detailed instructions are given in +the manual page for \fBmkttydata\fR. + +.nh 2 +Stripping the System to Reduce Disk Consumption + + If the system is to be installed on multiple cpus, or if a production +version is to be installed on a workstation, it may be necessary or desirable +to strip the system of all non-runtime files to save disk space. +This equates to deleting all the sources and all the reference manuals and +other documentation, excluding the online manual pages. A special utility +called \fBrmfiles\fR (in the \fBsoftools\fR package, of course) is provided +for this purpose. It is not necessary to run \fBrmfiles\fR directly to strip +the system. The preferred technique is to enter the commands given below. +The example is for the cshell for consistency with the rest of this document, +but this could be done from within the CL as well. + +.nf + % cd $iraf + % mkpkg strip +.fi + +This will preserve all runtime files, permitting use of the standard system +as well as user software development. The size of the system is reduced +from about 41 Mb (megabytes) to around 19 Mb. One can optionally enter the +command "mkpkg stripall" to delete the system libraries as well, but this +saves only another couple of Mb and a full sysgen or a tape reload will be +required to regain the capability to link user programs with the IRAF +libraries, or relink the IRAF executables. + +.nh +Interfacing to New Graphics Devices + + There are three types of graphics devices that concern us here. +These are the graphics terminals, graphics plotters, and image displays. +The topic of interfacing to these devices has already been discussed in +the letter which was sent out with the IRAF questionnaire, hence the +discussion given here will be brief. + +.nh 2 +Graphics Terminals + + The IRAF system as distributed is capable of talking to just about any +conventional graphics terminal, using the \fBstdgraph\fR graphics kernel +supplied with the system. All one need do to interface to a new graphics +terminal is add a new graphcap entry for the device. This can take anywhere +from a few hours to a few days, depending on one's level of expertise, and the +perversity of the device in question. + +The fancy bit mapped, high resolution graphics displays common on "workstations" +like the MicroVax and the SUN cannot be driven (very well) by the existing +\fBstdgraph\fR graphics kernel. We are actively developing new graphics kernels +for these devices, and they should be available later this year. These systems +often come with some graphics software, e.g., CORE, GKS, or CGI, but a good +interface requires interaction with the window management software as well, +hence each workstation will probably require a customized graphics kernel. + +.nh 2 +Graphics Plotters + + The current IRAF system comes with three graphics kernels usable to drive +graphics plotters. Additional kernels are under development to interface the +IRAF graphics subsystem to GKS, CGI, and CORE. + +The \fBstdgraph\fR kernel can in principle be used to make +plots on many devices by using a Tek graphcap entry, redirecting the Tek +drawing instructions into a file, and using the Tek emulation software that +comes with most plotters to generate the plot. A more streamlined interface +is possible but is not yet available. + +The supplied \fBstdplot\fR kernel is used to generate NCAR metacode and can be +interfaced to an NCAR metacode translator at the host system level to get +excellent plots on the Versatec, Imagen, and other similar devices if NCAR +metacode translators are available. This is the kernel we currently depend +upon most heavily at NOAO for plotter output. + +Unfortunately, the host level NCAR metacode translators are not included in +the standard IRAF distribution but are required for a plot. The necessary +software is however in the public domain and is in use at NOAO, hence is +available upon special request. + +The remaining possibility with the current system is the \fBcalcomp\fR kernel. +Many sites will have a Calcomp or Versaplot library (or Calcomp compatible +library) already available locally. It should be possible to edit the name +of the library in the hlib$mkpkg.inc file and relink the Calcomp graphics +kernel to get output on any devices supported by the library. +The following commands should suffice to relink and install the Calcomp +graphics kernel, assuming a Calcomp library is available locally: + +.nf + % cd $iraf/sys/gio/calcomp + % mkpkg update +.fi + +A graphcap entry may also be required. + +.nh 2 +Image Displays + + The IRAF system as currently supported directly supports only the +IIS model 70 and 75 image displays (a Peritek interface of sorts is +also available for VAX/UNIX hosts). The 8 bit color display for the SUN-3 +is on order and we expect to use it for image display. We are expecting +to take delivery of a MicroVax with bit mapped graphics display and DeAnza +image display later this year. + +We cannot do much to help sites with other image displays until the new +IRAF display interface (which will be based on the IDI standard) is completed. +Work is scheduled to begin on this in the spring, hence the software should +become available this summer or fall. The new interface and associated TV +package software will be a great improvement over what is currently available; +the current interface is a prototype and is quite minimal, e.g., it does +not support image cursor readback, although it is fine for image display. + +In the meantime, the simplest approach is to use the new IMFORT interface +and whatever non-IRAF display software you currently have to construct +an interim display program. The IMFORT library provides host system Fortran +or C programs with access to IRAF images. The only documentation +currently available for IMFORT is the README file in the directory +$iraf/sys/imio/imfort. Sample Fortran programs and a UNIX make script +showing how to link are given in the same directory. + +.nh +The IRAF Directory Structure + + The current IRAF directory structure (new directories are constantly +being added) is documented in the Appendix. The main branches of the tree +are the following. + +.nf + bin - installed executables + dev - device tables (termcap, graphcap, etc.) + doc - assorted IRAF manuals + lib - the system library; object libraries, global files + local - your login directory + math - sources for the mathematical libraries + pkg - the IRAF applications packages + sys - the virtual operating system (VOS) + unix - the UNIX system interface (kernel + bootstrap utilities) + vms - the VMS system interface (kernel + bootstrap utilities) +.fi + +If you will be working with the system much at the system level, it will be +well worthwhile to spend some time exploring these directories and gaining +familiarity with the system. +.endhelp |