---
name: "clisp-link"
section: "1"
platform: "linux"
package: "clisp"
version: "2.49.95-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/clisp-link"
---

# clisp-link(1)

link a new external module to CLISP\[1\].

## NAME

clisp-link - link a new external module to **CLISP**\[1\].

## 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**\[1\] 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**\[1\] with module sets added

• *Only in* **CLISP**\[1\] *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**\[1\] 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**

*Only in* **CLISP**\[1\] *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**\[1\] 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**\[2\] ".clisp/" (**USER-HOMEDIR-PATHNAME**\[3\])) 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**\[4\] **CLISP\_LINKKIT**.

## SEE ALSO

CLISP impnotes

[clisp(1)](/clisp/1.md)

## AUTHORS

**Bruno Haible** \<**http://www.haible.de/bruno/**\>

The original author and long-time maintainer.

**Michael Stoll** \<**http://www.mathe2.uni-bayreuth.de/stoll/**\>

The original author.

**Sam Steingold** \<**http://sds.podval.org/**\>

Co-maintainer since 1998.

**Others**

See *COPYRIGHT (file in the CLISP sources)*  for the list of other contributors and the license.

## COPYRIGHT

Copyright © 1992-2010 Bruno Haible\
 Copyright © 1998-2010 Sam Steingold\

## NOTES

- 1\.

  **CLISP**

  http://clisp.org

- 2\.

  **MERGE-PATHNAMES**

  http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun\_merge-pathnames.html

- 3\.

  **USER-HOMEDIR-PATHNAME**

  http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun\_user-homedir-pathname.html

- 4\.

  environment variable

  \[set $man.base.url.for.relative.links\]/basedefs/V1\_chap08.html
