Next: 2.2 Other information Up: 2 Installation procedure: UNIX Prev: 2 Installation procedure: UNIX Contents

2.1 The installation procedure:


The installation is performed with the help of a Makefile and can be subdivided into two steps:

  1. generating the installation Makefile, and
  2. installation: executing the Makefile

Step 1

This step is performed by initiating the following command after reading the magnetic tape:

% make

After entering this command an error message of the following form will probably appear:

La variable MR n'est pas initialisee dans le fichier Makefile
Elle doit avoir pour valeur /udd/modulef
make: *** [verification] Error 1

In this example, let us assume that the MODULEF cartridge was read into directory /udd/modulef. Variable MR, in file Makefile located in the current directory, must then be initialized to the directory name where MODULEF was read (in this example /udd/modulef).

Having done this, you can re-enter the same command:

% make

As long as variable MR is not initialized correctly, the same type of error message as shown above will appear and the installation will not be effected.

Once the variable is initialized correctly, the Makefile requests the name of the type of machine on which the installation is to be done. A list of names of several type of machines will appear on the screen to aid you with the response. Your response is very important as it initializes variable MM which, amongst others, is used to select the library containing the utilities corresponding to the machine specified. If your machine does not appear in the list, you will need to rewrite the utility corresponding to your machine by consulting libraries u_mod and u_rs6000 (see section 4.2).

Once MM is initialized, the Makefile performs the following actions:

Having performed these tasks, the Makefile then gives the following instructions:

  1. change directory ( cd Install$MM),
  2. consult file M_config contained in this directory, and
  3. restart the Makefile ( make).

Each of the points are described below:

  1. change directory ( cd Install$MM)

    We place ourselves in the directory in which we want to perform the installation;

  2. consult file M_config contained in this directory;

    It is preferable to edit file M_config before starting the initialization process so that the following variables are initialized correctly:

    MR :
    root directory where MODULEF is installed;
    MM :
    machine name;
    MV :
    version name ( sta);
    SHELL :
    kind of shell used ( /bin/sh)
    F77 :
    Fortran compilation command;
    F77FLAGS :
    Fortran compilation options;
    CC :
    C compilation command;
    C compilation options;
    search path for the include files during compilation of the C source files;
    LINK :
    link command for creating the executables;
    search path for the object libraries;
    STDLIB :
    libraries to include during linking. The libraries to include depend strongly on the graphic peripherals selected from the list at a later stage (the list of graphic peripherals available is given in Appendix F) ;
    AR :
    archive command for the object files;
    archive option for the object files;
    RANLIB :
    modify the object archives so that the linking process is faster. In general, the value of this variable is ranlib, except on machines for which this command does not exist (Silicon), in which case this variable is initialized to an empty string of characters ( RANLIB=) ;
    if the contents of this variable is empty, the Makefile makes nothing, else
    • LANGUAGE=GB : translates the print format in English
    • LANGUAGE=F : translates the print format in wrench
    BLAS :
    indicate whether library BLAS (Basic Linear Algebra Software) already exists in the system, in which case it is of no use to compile library blas_mod (for example on Cray);

    ZZZZ :
    indicates if library zzzz_mod, containing the user sub-programs, to be compiled.

    If your machine accepts unsatisfied references, it is not necessary to compile zzzz_mod and, in this case, ZZZZ is initialized to an empty string of characters ( ZZZZ =);

    FF3D :
    name of the library containing the interface sub-programs between the graphics software, FORTRAN 3D [MODULEF User Guide - 6], and MODULEF ( p_l $MM),

    UTIL :
    name of the library containing utilities corresponding to the installation machine (in general, u_ machine name);

    PPAL :
    variable PPAL indicates which executables you wish to create. PPAL is initialized by default to the list of executables most often used, however, you can enter any values you wish:

    PPAL=tout :
    to link all the executables contained in library ppal.

    If you decide to link all the executables contained in library ppal, make sure that you have enough disk space (approximately 100 MB).

    PPAL=PP_nofoxx PP_toutxx :
    only executables nofoxx and toutxx are created.

    this variable, used for the compilation of the libraries, gives the maximal number of files that can depend on a library. If a Modulef library contains more than MAXSUB files then the update of the library will be made by several Makefile. Modify the value of MAXSUB only if you have this kind of message during the libraries compilation
    Make: Expanded macro line is too long.  Stop.
    *** Exit 1
    *** Exit 1
    For further details, consult the appendix D.2.2
    this variable depends on the make command you use during the installation of Modulef.
    By default, we suppose that this command assumes the syntax %.f%.o: is correct and TYPEMAKE is set to makeMakefile. If not, (an error message will appear during the library compilation) set this variable to
    MAJMIN :
    this variable contains the command that allows to translate uppercase letters into lowercase letters. It is used in order to generate the Makefile of the libraries test and ppal.
    Generally this variable is automatically set, therefore it is possible, that this initialization cannot be made under some operating system.

    In this case, the makefile tells you that you have to find the command that allows to make this translation and to set MAJMIN in the file

    In order to find this command you can use these 2 files:

    • $racine/make/test_maj contains uppercase letters
    • $racine/make/test_min contains the same lowercase letters

    Note : If you modify the values of certain variables, these values should not be put between quotes, as that could result in errors at a later stage.

    The value of MAJMIN has to be put between quotes.

    Once file M_config has been consulted, the installation can be performed:

  3. restart the makefile ( make)

    We are now in the second part of the Makefile, called the installation.

Step 2

It is during this step that the installation is really performed (compiling, creating the executables, ...).

We remain in the installation directory throughout this step:

$MR/make/Install name of machine

During this phase the Makefile will be interrupted at least once. This interruption allows you to select the graphic peripherals. This choice is made in file; the graphic peripherals x11 and postscript (see Appendix F) are selected by default. Thus:

The Makefile now continues by performing the following tasks:

  1. Create the object libraries, (target libraries).

    To this end, a new Makefile is created in each source library, which compiles the library and stores the object files in an archive. If this target is executed several times, the Makefile will verify all the dependencies and will not do anything if everything is up-to-date, or recompile only those which are not up-to-date.

    Each Makefile generated in the source libraries can easily be re-used if you install on different machines without duplicating the source code.

    Any error messages generated during compilation are written on file:

    During compilation, a directory with the name of the library compiled is created in the current directory, $MR/make/Install$MM. This directory contains the object files temporarily before they are stored in a library.

    If an interruption occurs during compilation, those files that are already compiled will not be lost. In fact, when the Makefile is re-started it checks, for each library, if a directory with the same name does not exist in the current directory ( $MR/make/Install$MM). If this is indeed the case, it will archive the objects contained in the directory before compiling.

  2. Link (target executables).

    As before (target libraries), we generate the Makefiles, giving the inter-dependence between the object libraries and the main programs contained in libraries test and ppal. In this manner, the link is done only with those libraries that are necessary (thus being faster).

    While executing this target, several actions are performed:

Next: 2.2 Other information Up: 2 Installation procedure: UNIX Prev: 2 Installation procedure: UNIX Contents