NextPrevUpTopContentsIndex

:dll-exports

Keyword

Default value: :no

If dll-exports is :no , the delivered image is an executable.

Otherwise dll-exports should be a list (potentially nil ) of strings naming Lisp functions defined by fli:define-foreign-callable . The effect is to deliver the image as a dynamic library, and to export all the names in dll-exports so that they can be found by GetProcAddress (on Microsoft Windows) or dlsym (Linux/FreeBSD/Macintosh/Unix). The exported symbol is actually a stub that first ensures that LispWorks has finished initializing, and then enters the Lisp code.

To deliver a dynamic library on Linux/Macintosh/FreeBSD, the build machine must have a C compiler installed. This is typically gcc (which is available on the Macintosh by installing Xcode).

On Mac OS X the default behavior is to generate an object of type "Mach-O dynamically linked shared library". See :image-type for information about controlling the format of the object file.

You can use LoadLibrary from the main application to load the DLL and GetProcAddress to find the address of the external names.

There is an example DLL delivery script in Delivering a dynamic library.

For more information about the behavior of LispWorks DLLs (dynamic libraries) see the chapter "LispWorks as a dynamic library" in the LispWorks User Guide .


LispWorks Delivery User Guide - 14 Mar 2008

NextPrevUpTopContentsIndex