clisp-link
Description: This document describes an auxiliary program for GNU CLISP. See for instructions on how to report bugs (both in the software and the documentaion). See for information on CLISP support.
Date: 'generated: 2020-06-22 00:48:58+02:00'

## Name

clisp-link — link a new external module to CLISP.

## Synopsis

`clisp-link` [`create`] [``module``] [``file``...]

`clisp-link` [`add`] [``source``] [``destination``] [``module``...]

`clisp-link` [`run`] [``source``] [``module``...]

`clisp-link` [`install`] [``module``...]

## Description

This shell script operates on CLISP module sets and linking sets:

- `create`s new module sets out of source files
- `add`s module sets to a linking set to produce a new linking set
- `run`s CLISP with module sets added

- Platform Dependent: Only in CLISP built without configure flag `--without-dynamic-modules`.

  `install`s new module sets for general use

## Options

`create`

  The command

      $ clisp-link create module file ...

  creates a module set in `module` directory which refers (via symbolic links) to files `file`... The files are expected to be modules of their own.

`add`

  The command

      $ clisp-link add source destination module ...

  combines the linking set in directory `source` and the modules in directories `module`... to a new linking set, in the directory `destination` which is newly created.

`run`

  The command

      $ clisp-link run source module ...

  runs the linking set in directory `source`, with the modules in directories `module`... Unless CLISP has been built with the configuration option `--without-dynamic-modules`, the loading will be performed using `SYS::DYNLOAD-MODULES`. Otherwise - this is much slower - a temporary linking set will be created and deleted afterwards.

`install`

  Platform Dependent: Only in CLISP built without configure flag `--without-dynamic-modules`.

  The command

      $ clisp-link install module ...

  installs the modules in directories `module`... into `CUSTOM:*LIB-DIRECTORY*` or, if it is not writable to the user (e.g., if a system-wide CLISP installation is used and the user does not have administrative privileges), into `CUSTOM:*USER-LIB-DIRECTORY*`.

  Variable `CUSTOM:*USER-LIB-DIRECTORY*` is initially set to `(`MERGE-PATHNAMES` ".clisp/" (`USER-HOMEDIR-PATHNAME`))` if that directory exists, and can be reset in the RC file.

  ### Note

  Do not add `CUSTOM:*USER-LIB-DIRECTORY*` to `CUSTOM:*LOAD-PATHS*` or under any element thereof. Use `REQUIRE` instead of `LOAD` to load dynamic modules.

  For this command to work, each `module` directory must contain a `Makefile` with a clisp-module-distrib target which uses `LN` to distribute the files necessary to run the module into `destdir`. This is in addition to the general requirement that link.sh is present.

## Examples

See Section 32.2.6, “Example”.

## Files

clisp-link needs a “link kit” directory containing:

- `"modules.c"`
- `"clisp.h"`

clisp-link expects to find these files in a subdirectory `linkkit/` of the installation directory (i.e., `CUSTOM:*LIB-DIRECTORY*`) which it acquires by running

    $ `dirname $0`/clisp -b

This can be overridden by the environment variable `CLISP_LINKKIT`.

## See also

CLISP impnotes
clisp(1)

| clisp-link version 2.49.93+ | Platform: @PLATFORM@ | Last modified: 2020-06-22

Enter your search terms Submit search form
Web clisp.org