libSBML using libtool
libSBML is now built with the help of GNU libtool to make it easy to create platform specific shared/static libraries (the original libtool patch for libSBML was contributed by Moriyoshi Koizumi). Since the libtool can significantly increase compile times, Dolt is also used as a wrapper script for the libtool script to decrease compile times. The libtool and dolt scripts are automatically generated by executing a configure script and thus no additional software packages are required for compiling libSBML.
The soname or install_name of the shared library file
The soname of C++ shared library file on UNIX based systems (install_name on MacOSX) is now based on naming convention of each platform (libtool automatically adjusts the name). For example, the soname or install_name of the C++ shared library file is now libsbml.so.4 (Linux) or libsbml.4.dylib (MacOSX) and thus shared library or executable files which depend on the shared library file of libSBML now link to libsbml.so.4 or libsbml.4.dylib as follows:
(Linux) % ldd libsbmlj.so linux-gate.so.1 => (0x00110000) libsbml.so.4 => /usr/local/lib/libsbml.so.4 (0x00278000) libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7de8000) ... <snip> ... (MacOSX) % otool -L libsbmlj.jnilib libsbmlj.jnilib: /usr/local/lib/libsbml.4.dylib (compatibility version 5.0.0, current version 5.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.3) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3) ... <snip> ...
In libSBML 3.x or before, the soname or install_name had not been set to the C++ shared library file and thus libsbml.so (UNIX) or libsbml.dylib (MacOSX) had been linked with shared library or executable files on each platform.