GNU Libtool

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:Short description Template:More citations needed

{{#invoke:Infobox|infobox}}Template:Template other {{#invoke:Check for unknown parameters|check|unknown=Template:Main other|preview=Page using Template:Infobox software with unknown parameter "_VALUE_"|ignoreblank=y| AsOf | author | background | bodystyle | caption | collapsetext | collapsible | developer | discontinued | engine | engines | genre | included with | language | language count | language footnote | latest preview date | latest preview version | latest release date | latest release version | latest_preview_date | latest_preview_version | latest_release_date | latest_release_version | licence | license | logo | logo alt | logo caption | logo class | logo size | logo title | logo upright | logo_alt | logo_caption | logo_class | logo_size | logo_title | logo_upright | middleware | module | name | operating system | operating_system | other_names | platform | programming language | programming_language | qid | released | replaced_by | replaces | repo | screenshot | screenshot alt | screenshot class | screenshot size | screenshot title | screenshot upright | screenshot_alt | screenshot_class | screenshot_size | screenshot_upright | service_name | size | standard | title | ver layout | website }}Template:Main other

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, allowing software authors to offer build support for their code across many diverse platforms such as Linux, BSD variants, Windows (via Cygwin), HP-UX, Solaris (including on SPARC processors), AIX, and IRIX.<ref>Template:Cite book</ref>

Rationale

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

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

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>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

See also

Template:Portal

References

Template:Reflist

Template:GNU Template:Portal bar