Multiple architecture support is implemented by separating the IRAF sources and binaries into different directory trees. The sources are architecture independent and hence sharable by machines of any architecture. All of the architecture dependence is concentrated into the binaries, which are collected together into the so-called BIN directories, one for each architecture. The BIN directory contains all the object files, object libraries, executables, and shared library images for an architecture, supporting both IRAF execution and software development for that architecture. A given system can support any number of BIN directories, and therefore any number of architectures.
In IRAF terminology, when we refer to an "architecture" what we really mean is a type of BIN. The correspondence between BINs and hardware architectures is not necessarily one-to-one, i.e., multiple BINs can exist for a single compiler architecture by compiling the system with different compilation flags, as different versions of the software, and so on. Examples of some currently supported software architectures are shown below.
Architecture System Description generic any no binaries ssun Sun-4 Sun SPARC under Solaris (RISC) architecture, integral fpu sparc Sun-4 Sun SPARC (RISC) architecture, integral fpu pg Sun-4 Sun/IRAF compiled for profiling linux PC PC platforms running Linux freebsd PC PC platforms running FreeBSD sx86 PC PC platforms running Solaris x86 alpha Dec Alpha DEC Alpha running Digital Unix ddec Decstation DEC Fortran version of DSUX/IRAF dmip Decstation MIPS Risc Fortran version of DSUX/IRAF rs6000 IBM IBM RS/6000 running AIX hp700 HP HP 700 series running HPUX 10 irix SGI SGI IRIX, MIPS cpu f2c Macintosh A/UX, using Fortran-to-C translation and GCCMost of these correspond to hardware architectures or operating system options. The exceptions are the generic architecture, which is what the distributed system is configured to by default (to avoid having any architecture dependent binary files mingled with the sources), and the "pg" architecture, which is not normally distributed to user sites, but is a good example of a custom software architecture used for software development.
When running IRAF on a system configured for multiple architectures,
selection of the BIN (architecture) to be used is controlled by the UNIX
environment variable IRAFARCH, e.g.,
% setenv IRAFARCH ssunwould cause IRAF to run using the ssun architecture, corresponding to the BIN directory bin.ssun. Once inside the CL one can check the current architecture by entering one of the following commands (the output in each case is shown as well).
cl> show IRAFARCH ssunor
cl> show arch .ssun