navigation map

  1: Introduction
  2: Simple example
  3: Invocation
  4: Finer Control
  5: X-Y Plots
  6: Contour Plots
  7: Image Plots
  8: Examples
  9: Gri Commands
  10: Programming
  11: Environment
  12: Emacs Mode
  13: History
  14: Installation
  15: Gri Bugs
  16: Test Suite
  17: Gri in Press
  18: Acknowledgments
  19: License

index.html#Top Unix-install.html#Unix-install Gri: installing Gri Gri: installing Gri index.html#Top Gri: installing Gri

14.3: Compilation on Unix computers

The following steps indicate how to compile Gri on unix computers. The procedure is quite standard.

You'll need a C++ compiler that is modern enough to handle 'templates' (i.e. almost any compiler from 1998 onward). Don't worry -- if your compiler isn't new enough, you'll see that in a minute or two!

You'll need TeX and texinfo to make the info files, and optionally the netCDF library (if you wish gri to be able to read netCDF binary data files). To make the HTML manual, you'll need imagemagick, info, gs and its fonts.

On Debian GNU/Linux systems, the required packages are listed as Build-Depends in the `control' file found in the `debian' directory, to which you must add the package `build-essential'.

Unpack the source

gunzip gri-2.12.18.tgz
tar xvf gri-2.12.18.tar

(or similar commands) to uncompress and untar the contents. This will yield a new directory named `gri-2.12.18' which contains many files.

Move to the Gri directory

cd gri-2.12.18

Configure your compiler
Next you must "configure" the Gri source files. During this step, a series of tests will be made about your operating system and your compiler. Most of these tests need no interaction from you, but there is one overall choice that you may wish to make: the place on your filesystem where Gri (and many associated library and documentation files) will reside. To get the default installation, with files residing within the directory `/usr/local', type


at this time. If you'd rather the files go into another location, run the `configure' script differently, e.g. to get the Gri files to reside within the `/opt' directory, type:

./configure --prefix=/opt

In response, you'll see the results of several tests of the properties of your operating system, your C++ compiler, etc. Normally you can ignore these results.

As an example, typing `./configure' without a `--prefix' option yields the directory tree (`...' indicates several files not displayed in this list, for brevity). In this example, the most up-to-date version is 2.12.18, but a previous version 2.12.17 has also been retained. (Note that only one copy of the documentation is retained; this is all that's needed, since old versions are documented there as well as new versions.)

|-- bin
|   |-- gri -> gri-2.12.18
|   |-- gri-2.12.18
|   |-- gri-2.12.17
|   |-- gri_merge
|   `-- gri_unpage
|-- info
|   |-- ...
`-- share
    `-- gri
        |-- 2.6.0
        |   |-- gri.cmd
        |   |-- license.txt
        |   |-- logo.dat
        |   `-- startup.msg
        |-- 2.4.0
        |   |-- gri.cmd
        |   |-- license.txt
        |   |-- logo.dat
        |   `-- startup.msg
        `-- doc
            |-- examples
            |   |-- ...
            `-- html
                |-- ...
                |-- resources
                |   |-- ...
                `-- screenshots
                    |-- ...

Trouble-shooting 1: If the permission of the `configure' file is wrong, you'll get an error like `Permission denied'; if so, try typing `sh ./configure' to run it in the Bourne shell. If that fails, you are going to have to do some old-fashioned work! Start by copying the generic Makefile called `Makefile.generic' into `Makefile', and try the following steps, perhaps editing the `Makefile' if you run into errors.

Trouble-shooting 2: Gri uses a C++ feature called 'templates'. Unfortunately, templates are handled in different ways by different compilers. At least as of Spring 1997, the GNU compiler, vsn 2.7.x (used by many Gri folks) has problems with templates. Therefore the configure script will check to see if you are using the GNU c++ compiler, and if you are it will check whether the ("template repository") compiler flag `-frepo' is known on your machine. If it is not, an alternative method of templates will be used. But if it is, you'll be asked, for confirmation, whether you wish to use the `-frepo' flag. On many machines (e.g. Solaris) you should answer `n' to this question. The prompt will explain. Also, note that you can avoid the prompt by running configure as either of the two below:

./configure --enable-frepo
./configure --disable-frepo

(Such switches will be ignored unless you're using the GNU compiler.)

Trouble-shooting 3: If optional system libraries like the netCDF library, if it exists, are installed in nonstandard places, you might have to change the unix environment variable `LD_LIBRARY_PATH'. For example, on my machine the `netcdf' library is not installed in `/usr/lib', as the `configure' script assumes, but rather in `/usr/local/share/netcdf/lib'. Therefore I have the following line in one of my startup files:

export LD_LIBRARY_PATH=/usr/lib:/usr/local/share/netcdf/lib

Compiling Gri
Now compile Gri by typing


Testing Gri

make test

to do some tests on the version of Gri that you just compiled. If no errors are reported, you may go to the next step.

Installing Gri
Assuming compilation succeeds, install `gri' and the ancillary file `gri.cmd', by typing

make install

If you wish to see where files where be installed, first try a dry run typing

make -n install

Cleaning up
Once these things are done, you may type

make clean
cd doc ; make clean

to clean up some files. Of course, you could just erase the whole source, but the source is probably worth a penny of hard-drive space, isn't it?

navigation map