libtool
libtool
script contentsNext: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This file documents GNU Libtool, a script that allows package developers to provide generic shared library support. This edition documents version 2.4.5.
See 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 | ||
• 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 | |
Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]