GNU Info

Info Node: (libtool.info)Top

(libtool.info)Top


Next: Introduction Prev: (dir) Up: (dir)
Enter node , (file) or (file)node

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 1.4.2a.

   Note: Reporting bugs, for information on how to report problems
with 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.
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.
Other languages
Using libtool without a C compiler.
Troubleshooting
When libtool doesn't work as advertised.
Maintaining
Information used by the libtool maintainer.
GNU Free Documentation License
License for this manual.
Index
Full index.
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.
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

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

AC_PROG_LIBTOOL
Configuring `libtool' in `configure.in'.
Including libtool in your package

Invoking libtoolize
`libtoolize' command line options.
Autoconf .o macros
Autoconf macros that set object file names.
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.
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.
Using libtool with other languages

C++ libraries
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 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 dependant libraries.
Archivers
Programs that create static archives.

automatically generated by info2www version 1.2.2.9