elisp: Dynamic Libraries
38.21 Dynamically Loaded Libraries
==================================
A “dynamically loaded library” is a library that is loaded on demand,
when its facilities are first needed. Emacs supports such on-demand
loading of support libraries for some of its features.
-- Variable: dynamic-library-alist
This is an alist of dynamic libraries and external library files
implementing them.
Each element is a list of the form ‘(LIBRARY FILES...)’, where the
‘car’ is a symbol representing a supported external library, and
the rest are strings giving alternate filenames for that library.
Emacs tries to load the library from the files in the order they
appear in the list; if none is found, the Emacs session won’t have
access to that library, and the features it provides will be
unavailable.
Image support on some platforms uses this facility. Here’s an
example of setting this variable for supporting images on
MS-Windows:
(setq dynamic-library-alist
'((xpm "libxpm.dll" "xpm4.dll" "libXpm-nox4.dll")
(png "libpng12d.dll" "libpng12.dll" "libpng.dll"
"libpng13d.dll" "libpng13.dll")
(jpeg "jpeg62.dll" "libjpeg.dll" "jpeg-62.dll"
"jpeg.dll")
(tiff "libtiff3.dll" "libtiff.dll")
(gif "giflib4.dll" "libungif4.dll" "libungif.dll")
(svg "librsvg-2-2.dll")
(gdk-pixbuf "libgdk_pixbuf-2.0-0.dll")
(glib "libglib-2.0-0.dll")
(gobject "libgobject-2.0-0.dll")))
Note that image types ‘pbm’ and ‘xbm’ do not need entries in this
variable because they do not depend on external libraries and are
always available in Emacs.
Also note that this variable is not meant to be a generic facility
for accessing external libraries; only those already known by Emacs
can be loaded through it.
This variable is ignored if the given LIBRARY is statically linked
into Emacs.