GNU Libtool: Difference between revisions
imported>HouseBlaster rmv deleted portal |
(No difference)
|
Latest revision as of 04:45, 26 December 2024
Template:Short description Template:More citations needed
GNU Libtool is a software development tool, part of the GNU build system, consisting of a shell script<ref name="libtool is a shell script">Template:Cite book</ref> created to address the software portability problem when compiling shared libraries from source code. It hides the differences between computing platforms for the commands which compile shared libraries.<ref name="libtool: portability via abstraction">Template:Cite book</ref> It provides a command-line interface that is identical across platforms and it executes the platform's native commands.
Rationale
[edit]Different operating systems handle shared libraries differently. Some platforms do not use shared libraries at all. It can be difficult to make a software program portable: the C compiler differs from system to system; certain library functions are missing on some systems; header files may have different names.
Libtool helps manage the creation of static and dynamic libraries on various Unix-like operating systems. Libtool accomplishes this by abstracting the library-creation process, hiding differences between various systems (e.g. Linux systems vs. Solaris).
GNU Libtool is designed to simplify the process of compiling a computer program on a new system, by "encapsulating both the platform-specific dependencies, and the user interface, in a single script". <ref name="Libtool manual">Libtool Manual</ref> When porting a program to a new system, Libtool is designed so the porter need not read low-level documentation for the shared libraries to be built, rather just run a configure script (or equivalent). <ref name="Libtool manual" />
Use
[edit]Libtool is used by Autoconf and Automake, two other portability tools in the GNU build system. It can also be used directly. <ref name="automake uses libtool">Template:Cite book</ref>
Clones and derivatives
[edit]Since GNU Libtool was released, other free software projects have created drop-in replacements under different software licenses.<ref name="BSD-licensed libtool">BSD-licensed libtool.</ref> slibtool is one such implementation.<ref>Template:Cite web</ref>