(libtool.info)Top
Shared library support for GNU
******************************
This file documents GNU Libtool, a script that allows package developers
to provide generic shared library support. This edition documents
version 2.4.7.
Note: Reporting bugs, for information on how to report problems
with GNU Libtool.
Introduction- What the heck is libtool?
Libtool paradigm- How libtool's view of libraries is different.
Using libtool- Example of using libtool to build libraries.
Invoking libtool- Running the 'libtool' script.
Integrating libtool- Using libtool in your own packages.
Other languages- Using libtool without a C compiler.
Versioning- Using library interface versions.
Library tips- Tips for library interface design.
Inter-library dependencies- Libraries that depend on other libraries.
Dlopened modules- 'dlopen'ing libtool-created libraries.
Using libltdl- Libtool's portable 'dlopen' wrapper library.
Trace interface- Libtool's trace interface.
FAQ- Frequently Asked Questions
Troubleshooting- When libtool doesn't work as advertised.
Maintaining- Information used by the libtool maintainer.
GNU Free Documentation License- License for this manual.
Combined Index- Full index.
-- The Detailed Node Listing --
Introduction
Motivation- Why does GNU need a libtool?
Issues- The problems that need to be addressed.
Other implementations- How other people have solved these issues.
Postmortem- Learning from past difficulties.
Using libtool
Creating object files- Compiling object files for libraries.
Linking libraries- Creating libraries from object files.
Linking executables- Linking object files against libtool libraries.
Debugging executables- Running GDB on libtool-generated programs.
Installing libraries- Making libraries available to users.
Installing executables- Making programs available to users.
Static libraries- When shared libraries are not wanted.
Linking executables
Wrapper executables- Wrapper executables for some platforms.
Invoking 'libtool'
Compile mode- Creating library object files.
Link mode- Generating executables and libraries.
Execute mode- Debugging libtool-generated programs.
Install mode- Making libraries and executables public.
Finish mode- Completing a library installation.
Uninstall mode- Removing installed executables and libraries.
Clean mode- Removing uninstalled executables and libraries.
Integrating libtool with your package
Autoconf macros- Autoconf macros exported by libtool.
Makefile rules- Writing 'Makefile' rules for libtool.
Using Automake- Automatically supporting libtool.
Configuring- Configuring libtool for a host system.
Distributing- What files to distribute with your package.
Static-only libraries- Sometimes shared libraries are just a pain.
Configuring libtool
LT_INIT- Configuring 'libtool' in 'configure.ac'.
Configure notes- Platform-specific notes for configuration.
Including libtool in your package
Invoking libtoolize- 'libtoolize' command line options.
Autoconf and LTLIBOBJS- Autoconf automates LTLIBOBJS generation.
Using libtool with other languages
C++ libraries- Writing libraries for C++
Tags- Tags
Library interface versions
Interfaces- What are library interfaces?
Libtool versioning- Libtool's versioning system.
Updating version info- Changing version information before releases.
Release numbers- Breaking binary compatibility for aesthetics.
Tips for interface design
C header files- How to write portable include files.
Dlopened modules
Building modules- Creating dlopenable objects and libraries.
Dlpreopening- Dlopening that works on static platforms.
Linking with dlopened modules- Using dlopenable modules in libraries.
Finding the dlname- Choosing the right file to 'dlopen'.
Dlopen issues- Unresolved problems that need your attention.
Using libltdl
Libltdl interface- How to use libltdl in your programs.
Modules for libltdl- Creating modules that can be 'dlopen'ed.
Thread Safety in libltdl- Registering callbacks for multi-thread safety.
User defined module data- Associating data with loaded modules.
Module loaders for libltdl- Creating user defined module loaders.
Distributing libltdl- How to distribute libltdl with your package.
Frequently Asked Questions about libtool
Stripped link flags- Dropped flags when creating a library
Troubleshooting
Libtool test suite- Libtool's self-tests.
Reporting bugs- How to report problems with libtool.
The libtool test suite
Test descriptions- The contents of the old test suite.
When tests fail- What to do when a test fails.
Maintenance notes for libtool
New ports- How to port libtool to new systems.
Tested platforms- When libtool was last tested.
Platform quirks- Information about different library systems.
libtool script contents- Configuration information that libtool uses.
Cheap tricks- Making libtool maintainership easier.
Porting libtool to new systems
Information sources- Where to find relevant documentation
Porting inter-library dependencies- Implementation details explained
Platform quirks
References- Finding more information.
Compilers- Creating object files from source files.
Reloadable objects- Binding object files together.
Multiple dependencies- Removing duplicate dependent libraries.
Archivers- Programs that create static archives.
Cross compiling- Issues that arise when cross compiling.
File name conversion- Converting file names between platforms.
Windows DLLs- Windows header defines.
File name conversion
File Name Conversion Failure- What happens when file name conversion fails
Native MinGW File Name Conversion- MSYS file name conversion idiosyncrasies
Cygwin/Windows File Name Conversion- Using 'cygpath' to convert Cygwin file names
Unix/Windows File Name Conversion- Using Wine to convert Unix paths
LT_CYGPATH- Invoking 'cygpath' from other environments
Cygwin to MinGW Cross- Other notes concerning MinGW cross
automatically generated by info2www version 1.2.2.9