ExtUtils::Liblist - Determine Libraries to Use and How to Use Them
require ExtUtils::Liblist; ExtUtils::Liblist::ext($potential_libs, $Verbose);
This utility takes a list of libraries in the form -llib1 -llib2 -llib3 and returns lines suitable for inclusion in a Perl extension Makefile on the current platform. Extra library paths may be included with the form -L/another/path. This will affect the searches for all subsequent libraries.
ExtUtils::Liblist::ext() returns a list of four scalar values, which Makemaker will eventually use in constructing a Makefile, among other things. The values are:
EXTRALIBS- List of libraries that need to be linked with ld(1) when linking a Perl binary that includes a static extension. Only those libraries that actually exist are included.
LDLOADLIBS- List of those libraries that can or must be linked when creating a shared library using ld(1). These may be static or dynamic libraries.
LD_RUN_PATH- A colon-separated list of the directories in
LDLOADLIBS. It is passed as an environment variable to the process that links the shared library. BSLOADLIBS- List of those libraries that are needed but can be linked in dynamically with the DynaLoader at run-time on this platform. This list is used to create a bs (bootstrap) file. SunOS/Solaris does not need this because ld(1) records the information (from
LDLOADLIBS) into the object file.
Portability
This module deals with a lot of system dependencies and has quite a few architecture-specific ifs in the code.