MKABS (1) (V2.00) MKABS (1) NAME mkabs64 mkabs32 mkabs - Creates an executable module from a set of fortran- callable user-supplied and/or default libraries. SYNOPSIS mkabs64 mkabs32 mkabs [ progname [supp.o [...] ] ] [-absname "absolute name" ] [-progname "program name" [...] ] [-obj supp.o [...] ] [-prog "user program library" [...] ] [-xlib ] [-sub "user subroutine libraries" [...] ] [-FFLAGS ... ] [-echo ] [-map [ "map value" ] DESCRIPTION mkabs creates an absolute module from at least one main routine called 'progname'. These routines are 'subroutinezed' versions of standart programs. In terms of FORTRAN, this means simply replacing the first line statement 'PROGRAM progname' by a 'SUBROUTINE progname' statement. Several such modules can then be included in a single library archive. The name of this archive can be passed by the 'prog' key or by the USRLIBP environment variable. The accessory routines needed by any of the progname(s) can be supplied by the program library (in which case they should have been compiled with the respective main programs), by explicit pre-compiled object files, by the second set of libraries pointed to by the 'sub' key, or by the default RPN library. At least one program or one subroutine library name has to specified. The linker searches the libraries in that order, once and only once. A second environment variable USRLIBS can also supply the optional subroutine library names, while the standard variable ARMNLIB gives the residence of the rpn libraries. The flags used in compiling progname in the first place should be re-supplied (quoted) at this time following the FFLAGS key, as they most likely indicate which other default system libraries should be searched. The result is an executable absname.Abs. The mkabs64 and mkabs32 calls are versions of mkabs that generate 64- or 32-bit words executables, respectively, while mkabs itself generates executables that have word sizes defined according to the value of the MACHINE_BITS environment variable, if it is defined, or 32-bits, if not. progname -progname ProgramName1 ... Program module to create. File absname.Abs is written in the working directory. This is the only required parameter. If the second form is used, several modules can be loaded in the same absname.Abs -absname AbsoluteName Name of the executable to be created. If only one program name has been supplied, this defaults to "$progname.Abs". Otherwise, the default is "Main" supp.o ... -obj supp.o ... Any number of optional pre-compiled object files. The second form has to be used if the previous key "-progname" is used -prog ProgLibName Name of the program library archive. This can be supplied either explicitly here or through the USRLIBP environment variable. This library set is searched first -sub SubLibName Name of one or more optional subroutine library archive. Can also be supplied through the USRLIBS environment variable. This library set is searched in second -xlib [ RPNLibName ] Name of the library that contains the RPN lowest-level code. The primary default (obtained when xlib is not specified) is set to rmnlib.a. Specifying xlib by itself will insert the latest version of the usual RPN library. This library set is searched last -FFLAGS [ CompilerFlags ] Fortran compiler flags. These are set to '-O' by default. The same flags that where supplied in the original compilation of the progname(s) should be given here (except for -c). Note that an equal is to be used to escape the minus sign (see the first example and the cclargs man page). -echo Echoes the values used for the parameters. -map [ MapValue ] The map parameter can be "none","part" or "full". "none" is the default, while specifying map without a value implies "part". "part" will produce a map of the code up to a load of the system libraries. "full" will include these latter. The map itself goes to a file named $absname.map. EXAMPLES 1) export USRLIBS USRLIBS="UsrSubLib1.a UsrSubLib2.a" mkabs progname supp.o -xlib -prog ProgLib -FFLAGS '=-O:-mp' progname.Abs [ optionnal progname parametres ] 2) mkabs -progname prog1 prog2 prog3 -absname mainame \ -obj compile.o -sub malib.a -map mainame.Abs -prog1 [ optionnal prog1 parametres ] mainame.Abs -prog2 [ optionnal prog2 parametres ] mainame.Abs -prog3 [ optionnal prog3 parametres ] NOTES In the previous example, the -prog(i) execution parametres are hybrid parametres in that they are defined to be both keyword and and positional format. That is, they must have a "-" and they must also appear immediatly after $absname. AUTHOR Bernard Dugas - Decembre 1991 UPDATES Implement multi-module mains Several modifications to the cleanup Map are available on MIPS, HP and NEC Mario Lepine, Bernard Dugas - October 1994