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.6.
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 | dlopening 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 dlopened.
| |
| • 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]