manpagez: man pages & more
info libtool
Home | html | info | man

File: libtool.info,  Node: Top,  Next: Introduction,  Prev: ((dir)),  Up: ((dir))

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.5.4.

   *Note Reporting bugs::, for information on how to report problems
with GNU Libtool.

* Menu:

* 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

* 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


© manpagez.com 2000-2025
Individual documents may contain additional copyright information.