This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
|Initial release||July 9, 1997|
|Stable release||2.4.6 (February 15, 2015)|
GNU Libtool is a software development tool that is part of the GNU build system. It is a shell script.  It was 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.  It provides a commandline interface that is identical across platforms and it executes the platform's native commands.
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.
One way to handle this is to write conditional code, with code blocks selected by means of preprocessor directives (
#ifdef); but because of the wide variety of build environments this approach quickly becomes unmanageable.
The GNU build system is designed to address this problem more manageably.
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".  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). 
Clones and derivatives
- "GNU". Retrieved 25 June 2012. CS1 maint: discouraged parameter (link)
- Gary V. Vaughan (15 February 2015). "GNU Libtool - News: libtool-2.4.6 released [stable]". GNU Libtool - News. savannah.gnu.org.
- "A postmortem analysis of other implementations". The GNU Libtool manual. The GNU project. 2015-02-15. Retrieved 2021-02-02. CS1 maint: discouraged parameter (link)
- "Introduction". The GNU Libtool manual. The GNU project. 2015-02-15. Retrieved 2021-02-02. CS1 maint: discouraged parameter (link)
- Libtool Manual
- "Writing Makefile rules for libtool". The GNU Libtool manual. The GNU project. 2015-02-15. Retrieved 2021-02-02. CS1 maint: discouraged parameter (link)
- BSD-licensed libtool.
- Official website
- Autobook homepage
- Autotools Tutorial
- Avoiding libtool minefields when cross-compiling
- Autotools Mythbuster