(automake-1.16.info)Libtool Concept


Next: Libtool Libraries Up: A Shared Library
Enter node , (file) or (file)node

8.3.1 The Libtool Concept
-------------------------

Libtool abstracts shared and static libraries into a unified concept
henceforth called “libtool libraries”.  Libtool libraries are files
using the ‘.la’ suffix, and can designate a static library, a shared
library, or maybe both.  Their exact nature cannot be determined until
‘./configure’ is run: not all platforms support all kinds of libraries,
and users can explicitly select which libraries should be built.
(However the package’s maintainers can tune the default, Note: The
‘AC_PROG_LIBTOOL’ macro.)

   Because object files for shared and static libraries must be compiled
differently, libtool is also used during compilation.  Object files
built by libtool are called “libtool objects”: these are files using the
‘.lo’ suffix.  Libtool libraries are built from these libtool objects.

   You should not assume anything about the structure of ‘.la’ or ‘.lo’
files and how libtool constructs them: this is libtool’s concern, and
the last thing one wants is to learn about libtool’s guts.  However the
existence of these files matters, because they are used as targets and
dependencies in ‘Makefile’s rules when building libtool libraries.
There are situations where you may have to refer to these, for instance
when expressing dependencies for building source files conditionally
(Note: Conditional Libtool Sources).

   People considering writing a plug-in system, with dynamically loaded
modules, should look into ‘libltdl’: libtool’s dlopening library (Note:
Using libltdl.).  This offers a portable
dlopening facility to load libtool libraries dynamically, and can also
achieve static linking where unavoidable.

   Before we discuss how to use libtool with Automake in details, it
should be noted that the libtool manual also has a section about how to
use Automake with libtool (*note Using Automake with Libtool:
(libtool)Using Automake.).


automatically generated by info2www version 1.2.2.9