
                              !MakeLib

    A utility for making libraries from Fortran (or assembler) source.
    ------------------------------------------------------------------

Why you need !MakeLib.
----------------------
    Fortran source has usually been stored with many procedures (SUBROUTINES
 and FUNCTIONS) in one file, each procedure immediately following the last.
 When you compile such a file with Fortran Release 3, it creates a single
 object which has to be linked all in one piece. This does not make for an
 efficient library where you want the linker to select just those routines
 which are needed to satisfy all the references.
    !MakeLib compiles each procedure separately and recombines the object
 modules back into a library which can then be searched selectively by the
 linker.
    It does not matter how many routines are in the Fortran source file
 provided there is sufficient space for the resulting library and some small
 intermediate files on !Scrap. !MakeLib is not limited by the maximum number
 of files allowed in a directory.

Restrictions.
-------------
    !MakeLib does not use a source line parser and only looks for the
 beginning and end of each procedure. It expects each procedure to begin
 with any of:
      PROGRAM
      SUBROUTINE
      xxx FUNCTION     (where xxx can be any function qualifier)
      BLOCK DATA
 where blanks are ignored as usual in Fortran.
    Assembler routines must begin with a TTL statement.
    Procedures must end with the usual unlabelled END statement without
       continuation lines.
    The Fortran source file must be in a directory 'f', (assembler in 's').

    BLOCK DATA and main programs are not really useful in libraries so it is
 better not to have them in your source file.

    !MakeLib tries to use the RAMDisc for its scratch files, in particular
 for the temporary source and object files of each routine in turn. If there
 is not enough space for a particularly large object file from a small
 source, you will get the message:
    "... Fatal error: I/O error on object stream"
    This can be corrected by creating a small RAMdisc and dropping a file
 into it before making the library.

    The routines are only extracted for separate compilation from the main
file, not from within INCLUDE files. Also INCLUDED files may not themselves
contain INCLUDE statements.

Instructions.
-------------
   1) Install !MakeLib on the Icon Bar
   2) Set any Fortran options from the Icon Bar menu.
   3) Drag your Fortran (or assembler) source file to the icon. !MakeLib
 will then check the file, counting the procedures. When it has finished it
 makes a standard 'Save as:' window with the name of your source file as the
 name of the new library. 
   4) Change the name if necessary and drag its icon to where you want the
 library stored (or you can delete the 'Save as:' window if you want to
 abandon making the library). !Makelib then compiles each routine in turn,
 showing you the progress in its 'Status' window by changing the procedure
 names from grey to black as they are compiled.
   5) You can stop the compilation at any time by clicking with the 'menu'
 button over the icon on the Icon Bar and then clicking on the 'stop' entry.

Icon Bar menu
-------------
   Clicking with the 'menu' button over the icon on the Icon Bar shows a
menu which allows the following:
   'info' displays the version of !MakeLib
   'help' displays this file
   'assembler' and 'Fortran': clicking on these allows you to change the
                              compiler/assembler options
   'stop' stops the compilation/assembly
   'quit' stops the whole application.
