lib#

Purpose#

Builds and updates library files.

Format#

lib library file;
lib library -flag;
lib library file -flag1 -flag2;

Parameters:

library:

(literal) name of library.

file:

(literal) optional. name of source file to be updated or added.

flags:

(literal) optional. preceded by -, controls operation of library update. To control handling of path information on source filenames:

-addpath

add paths to entries without paths and expand relative paths.

-gausspath

reset all paths using a normal file search.

-leavepath

(default) leave all path information untouched.

-nopath

drop all path information.

To specify a library update or a complete library build:

-update

(default) update the symbol information for the specified file only.

-build

update the symbol information for every library entry by compiling the actual source file.

-delete

delete a file from the library.

-list

list files in a library.

To control the symbol type information placed in the library file:

-strong

(default) use strongly typed symbol entries.

-weak

save no type information. This should only be used to build a library compatible with a previous version of GAUSS.

To control location of temporary files for a complete library build:

-tmp

(default) use the directory pointed to by the tmp_path configuration variable. If tmp_path is not defined, lib will look for a tmp environment variable.

-disk

use the same directory listed in the lib_path configuration variable.

Examples#

Let us suppose that you have a file named myprocs.gss located in your GAUSS src directory. Let us further suppose that you would like to create a new library named mylibrary. You could accomplish that task like this:

lib mylibrary myprocs.gss;

Now that this library has been created, you could add other files in the same manner. To add a file named mystats.gss would look like this:

lib mylibrary mystats.gss;

This second command will add the file mystats.gss to the mylibrary which was created in the first step above. It will not overwrite or replace the library.

You may print the list of files contained in the library by using the -list flag. Entering the command:

lib mylibrary -list;

at the GAUSS command line will produce the output similar to:

Listing library:  mylibrary.lcg
    myprocs.gss
    mystats.gs

If you add procedures to one of the files in your library, you will need to update the library to reflect these new changes. Continuing with the example from above, if you added some new procedures to the file mystats.gss, you could update the mylibrary library with the following command:

lib mylibrary mystats.gss -update;

Note that, as in the command above, the -update flag must be used with a file. To update, or rebuild the references for all files in the library, use the -build flag.

lib mylibrary -build;

Remarks#

The library management functionality offered by the lib command can also be accomplished interactively with windows and buttons, using the Library Tool in the user interface. See The Library Tool Chapter, for more information on using the Library Tool.

The flags can be shortened to one or two letters, as long as they remain unique-for example, -b to -build a library, -li to list files in a library.

If the filenames include a full path, the compilation process is faster because no unnecessary directory searching is needed during the autoloading process. The default path handling adds a path to each file listed in the library and also expands any relative paths so the system will work from any drive or subdirectory.

When a path is added to a filename containing no path information, the file is searched for on the current directory and then on each subdirectory listed in src_path. The first path encountered that contains the file is added to the filename in the library entry.

See also

Keyword library