GNU Libtool
For version 2.4.2, 17 October 2011
Gordon MatzigkeitAlexandre Oliva
Thomas Tanner
Gary V. Vaughan
Copyright © 1996-2011 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
This file documents GNU Libtool 2.4.2
Copyright (C) 1996-2011 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
[ < ] | [ > ] | [Contents] | [Index] | [ ? ] |
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.2.
See section Reporting bugs, for information on how to report problems with GNU Libtool.
1 Introduction | What the heck is libtool? | |
2 The libtool paradigm | How libtool’s view of libraries is different. | |
3 Using libtool | Example of using libtool to build libraries. | |
4 Invoking libtool | Running the libtool script.
| |
5 Integrating libtool with your package | Using libtool in your own packages. | |
6 Using libtool with other languages | Using libtool without a C compiler. | |
7 Library interface versions | Using library interface versions. | |
8 Tips for interface design | Tips for library interface design. | |
9 Inter-library dependencies | Libraries that depend on other libraries. | |
10 Dlopened modules | dlopen ing libtool-created libraries.
| |
11 Using libltdl | Libtool’s portable dlopen wrapper library.
| |
12 Libtool’s trace interface | ||
13 Frequently Asked Questions about libtool | Frequently Asked Questions | |
14 Troubleshooting | When libtool doesn’t work as advertised. | |
15 Maintenance notes for libtool | Information used by the libtool maintainer. | |
Appendix A GNU Free Documentation License | License for this manual. | |
Combined Index | Full index. | |
— The Detailed Node Listing — Introduction | ||
---|---|---|
1.1 Motivation for writing libtool | Why does GNU need a libtool? | |
1.2 Implementation issues | The problems that need to be addressed. | |
1.3 Other implementations | How other people have solved these issues. | |
1.4 A postmortem analysis of other implementations | Learning from past difficulties. | |
Using libtool | ||
3.1 Creating object files | Compiling object files for libraries. | |
3.2 Linking libraries | Creating libraries from object files. | |
3.3 Linking executables | Linking object files against libtool libraries. | |
3.4 Debugging executables | Running GDB on libtool-generated programs. | |
3.5 Installing libraries | Making libraries available to users. | |
3.6 Installing executables | Making programs available to users. | |
3.7 Linking static libraries | When shared libraries are not wanted. | |
Linking executables | ||
3.3.1 Wrapper executables for uninstalled programs | Wrapper executables for some platforms. | |
Invoking | ||
4.1 Compile mode | Creating library object files. | |
4.2 Link mode | Generating executables and libraries. | |
4.3 Execute mode | Debugging libtool-generated programs. | |
4.4 Install mode | Making libraries and executables public. | |
4.5 Finish mode | Completing a library installation. | |
4.6 Uninstall mode | Removing installed executables and libraries. | |
4.7 Clean mode | Removing uninstalled executables and libraries. | |
Integrating libtool with your package | ||
5.1 Autoconf macros exported by libtool | ||
5.2 Writing ‘Makefile’ rules for libtool | ||
5.3 Using Automake with libtool | Automatically supporting libtool. | |
5.4 Configuring libtool | Configuring libtool for a host system. | |
5.5 Including libtool in your package | What files to distribute with your package. | |
5.6 Static-only libraries | Sometimes shared libraries are just a pain. | |
Configuring libtool | ||
5.4.1 The LT_INIT macro | Configuring libtool in ‘configure.ac’.
| |
5.4.2 Platform-specific configuration notes | Platform-specific notes for configuration. | |
Including libtool in your package | ||
5.5.1 Invoking libtoolize | libtoolize command line options.
| |
5.5.2 Autoconf and LTLIBOBJS | Autoconf automates LTLIBOBJS generation. | |
Using libtool with other languages | ||
6.1 Writing libraries for C++ | ||
6.2 Tags | ||
Library interface versions | ||
7.1 What are library interfaces? | ||
7.2 Libtool’s versioning system | ||
7.3 Updating library version information | Changing version information before releases. | |
7.4 Managing release information | Breaking binary compatibility for aesthetics. | |
Tips for interface design | ||
8.1 Writing C header files | How to write portable include files. | |
Dlopened modules | ||
10.1 Building modules to dlopen | Creating dlopenable objects and libraries. | |
10.2 Dlpreopening | Dlopening that works on static platforms. | |
10.3 Linking with dlopened modules | Using dlopenable modules in libraries. | |
10.4 Finding the correct name to dlopen | Choosing the right file to dlopen .
| |
10.5 Unresolved dlopen issues | Unresolved problems that need your attention. | |
Using libltdl | ||
11.1 How to use libltdl in your programs | ||
11.2 Creating modules that can be dlopen ed | ||
11.3 Using libltdl in a multi threaded environment | Registering callbacks for multi-thread safety. | |
11.4 Data associated with loaded modules | Associating data with loaded modules. | |
11.5 How to create and register new module loaders | Creating user defined module loaders. | |
11.6 How to distribute libltdl with your package | ||
Frequently Asked Questions about libtool | ||
13.1 Why does libtool strip link flags when creating a library? | Dropped flags when creating a library | |
Troubleshooting | ||
14.1 The libtool test suite | Libtool’s self-tests. | |
14.2 Reporting bugs | How to report problems with libtool. | |
The libtool test suite | ||
14.1.1 Description of test suite | The contents of the old test suite. | |
14.1.2 When tests fail | What to do when a test fails. | |
Maintenance notes for libtool | ||
15.1 Porting libtool to new systems | How to port libtool to new systems. | |
15.2 Tested platforms | When libtool was last tested. | |
15.3 Platform quirks | Information about different library systems. | |
15.4 libtool script contents | Configuration information that libtool uses. | |
15.5 Cheap tricks | Making libtool maintainership easier. | |
Porting libtool to new systems | ||
15.1.1 Information sources | Where to find relevant documentation | |
15.1.2 Porting inter-library dependencies support | Implementation details explained | |
Platform quirks | ||
15.3.1 References | Finding more information. | |
15.3.2 Compilers | Creating object files from source files. | |
15.3.3 Reloadable objects | Binding object files together. | |
15.3.4 Multiple dependencies | Removing duplicate dependent libraries. | |
15.3.5 Archivers | Programs that create static archives. | |
15.3.6 Cross compiling | Issues that arise when cross compiling. | |
15.3.7 File name conversion | Converting file names between platforms. | |
15.3.8 Windows DLLs | Windows header defines. | |
File name conversion | ||
15.3.7.1 File Name Conversion Failure | What happens when file name conversion fails | |
15.3.7.2 Native MinGW File Name Conversion | MSYS file name conversion idiosyncrasies | |
15.3.7.3 Cygwin/Windows File Name Conversion | Using cygpath to convert Cygwin file names
| |
15.3.7.4 Unix/Windows File Name Conversion | Using Wine to convert Unix paths | |
15.3.7.5 LT_CYGPATH | Invoking cygpath from other environments
| |
15.3.7.6 Cygwin to MinGW Cross | Other notes concerning MinGW cross | |
[ < ] | [ > ] | [Contents] | [Index] | [ ? ] |
This document was generated on December 1, 2011 using texi2html 5.0.