Previous: VMS Installation, Up: Implementation

30.14 Installation of CONGEN on UNIX

The installation of CONGEN on UNIX is a very straightforward process. The files are organized so that CONGEN can be installed by either a system manager or an individual user without privilege. There are only a few steps to be taken:

  1. CONGEN is provided as a single gzip'ped tar file (you can get gzip from the Free Software Foundation (ftp to or other mirrors). Restore the tapes while preserving the directory structure into a directory of your own choosing, e.g.
              zcat congen.tar.gz | tar xvfo -

    You will need about 600000 blocks to restore the tar file.

  2. Modify the files, ./congen/cgdefs and ./congen/cgprofile, to reflect your own directory structure and machine usage. The files, cgdefs and cgprofile, contain some special code for the definition of CGROOT which is used at our site to allow us to have two copies of CONGEN on different machines, and to switch based on the machines' availability. You can remove all the conditionals, and simply give it a definition.

    The machine designation is more complicated. The program, ./congen/setcgplatform, will determine what machine you are running on. For most machines, there is only one possible machine, but on the Silicon Graphics computers, there are many possibilities based on the type of processor, operating system, compiler, instruction set architecture, and application binary interface. The SGI machine string is encoded as sgi_rchip_iO.S_ccompiler_marchitecture_aabi. The choices for each part are as follows:

    3k, 4k, 5k, 8k, 10k
    5.3, 6.1, 6.2, 6.3, 6.4
    5.3, 6.1, 6.2, 7.0, 7.1, 7.2
    1, 2, 3, 4, 5
    32, n32, 64
    Most distributions of CONGEN contain only the most compatible version which is found under the machine directory, sgi_r3k_i5.3_c5.3_m1_a32. See the section on rebuilding CONGEN, Making CONGEN, for a description on how to build other versions of CONGEN which will give better performance on the newer architectures.

    The environment variable, CGPLATFORM, specifies which machine directory to use. The Perl program, ./congen/matchdir, finds the closest compatible machine directory for the environment you are running on. You can override the automatic selections by setting CGPLATFORM prior to the execution of cgdefs or at the beginning of cgdefs.

  3. Change either the system wide profile or .cshrc file or your own profile or .cshrc file to source cgdefs or cgprofile.

    The file, cgdefs, is for the C shell, and the file, cgprofile, is for the Bourne or Korn shells. Once these files are executed, all of the commands will work.

  4. Change your default directory to $CGT, and run two tests as follows:
              make test.dif congen.dif

    Examine those two files. The only differences you should see are file names, version numbers, dates, allocations in the heap, and execution times.

  5. You may wish to delete rarely used files such as the bulk of the test cases or source code object files.
  6. Copy the INFO files (congen, congen-*, flecsdoc, and flecsdoc-*) in $CGD into the GNU Emacs manual directory and modify the INFO directory file so GNU Emacs can access the CONGEN documentation.
  7. It is helpful if TeX is installed. This will allow you to modify the documentation.