From 9128f7cd5af8537744ea529dd9b7c7730f2df6df Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Thu, 18 Oct 1979 21:42:19 -0800 Subject: [PATCH] BSD 3 development Work on file usr/src/cmd/apl/documents/libr.doc Co-Authored-By: Ross Harvey Co-Authored-By: Douglas Lanam Synthesized-from: 3bsd --- usr/src/cmd/apl/documents/libr.doc | 86 ++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 usr/src/cmd/apl/documents/libr.doc diff --git a/usr/src/cmd/apl/documents/libr.doc b/usr/src/cmd/apl/documents/libr.doc new file mode 100644 index 0000000000..917cb7702e --- /dev/null +++ b/usr/src/cmd/apl/documents/libr.doc @@ -0,0 +1,86 @@ +.tl 'LIBR(I)'12/17/75'LIBR(I)' +NAME + libr - fortran librarian + +SYNOPSIS + libr libfile -k1 n11 n12 ... n1k ... -kn ... + +DESCRIPTION + + LIBR is a program to build and maintain libraries of object modules +to be used with LINK. An object module in a library is included in the out file +iff it satisfies an undefined reference at the time it is encountered. (With some +exceptions for -i: and -e: ) Therefore, the order of modules in a library is +important. + + All commands except append (-a ) require that the file designated 'libfile' +already exit. The append command will create the library file if it does +not exist. The action of LIBR is governed by the keybytes, which are +interpreted in left-to-right order. The entire command line is checked for +correctness, and then executed. + + In a library, all modules are identifies by their module name. +Assembly language programs get their module name from a .title directive. +In fortran subprograms the module name is the name of the subroutine declared +in it. + + There are no default extensions. + + The keybytes are: + + -l +.in 20 +list the contents of the library as it will appear at the completion +of the LIBR command +.in 0 + + -g mod syms +.in 20 +As noted above, a module is included into an outfile from a library only if +it 'declares' a yet-undefined global symbol. Initially, a module declares +all those global symbols which are assigned values within it. +The -g command allows one to eliminate declarations from a module. +.in 0 + + -d mods +.in 20 +delete the named modules from the library + +.in 0 + -i mod files +.in 20 +place the modules in the named files into the library before the +given module. + +.in 0 + -r files +.in 20 +Replace the modules in the library with those in the files having the +same module name. + +.in 0 + -a files +.in 20 +Append the modules in the named files to the library. Create the library if it does +not exist. + +.in 0 + -c +.in 20 +Generate a cross-reference + + + +.in 0 +EXAMPLE + A fortran user wants to create a library of six graphics +subroutines in the object files graph1.obj ... graph6.obj. +First, a library is created: + libr graphlib -a graph1.obj ... graph6.obj + +If, later, it is necessary to replace one of the subroutines, say #4, +this can be done as: + libr graphlib -r graph4.obj + +FILES + libr1.tmp - scratch file -- 2.20.1