libtool
also: GNU libtool
A GNU utility that simplifies the creation and use of shared libraries across different platforms by abstracting away platform-specific compilation details.
libtool is a build system tool that generates wrapper scripts and handles the complexity of building shared and static libraries portably. It works with the GNU Autotools ecosystem (autoconf, automake) to manage library compilation, installation, and linking across Unix-like systems with differing conventions.
Instead of directly calling the compiler, developers use libtool commands like libtool --mode=compile and libtool --mode=link, which automatically translate to the correct platform-specific flags and procedures. For example, on Linux it might use gcc -fPIC for position-independent code, while on macOS it applies different visibility flags.
This abstraction eliminates the need to write conditional build logic for each OS. Libtool also manages .la files (libtool archives) that store metadata about libraries, and handles rpath, version numbers, and symbol visibility consistently across platforms.