ExtUtils_Liblist

# NAME

ExtUtils::Liblist - determine libraries to use and how to use them

# SYNOPSIS

require ExtUtils::Liblist;

`ExtUtils::Liblist::ext($potential_libs, $Verbose);`

# DESCRIPTION

This utility takes a list of libraries in the form C<-llib1 -llib2 -llib3> and prints out lines suitable for inclusion in an extension Makefile. Extra library paths may be included with the form `-L/another/path` this will affect the searches for all subsequent libraries.

It returns an array of four scalar values: EXTRALIBS, BSLOADLIBS, LDLOADLIBS, and LD_RUN_PATH.

Dependent libraries can be linked in one of three ways:

* For static extensions
  by the ld command when the perl binary is linked with the extension library. See EXTRALIBS below.

* For dynamic extensions
  by the ld command when the shared object is built/linked. See LDLOADLIBS below.

* For dynamic extensions
  by the DynaLoader when the shared object is loaded. See BSLOADLIBS below.

## EXTRALIBS

List of libraries that need to be linked with when linking a perl binary which includes this extension Only those libraries that actually exist are included. These are written to a file and used when linking perl.

## LDLOADLIBS and LD_RUN_PATH

List of those libraries which can or must be linked into the shared library when created using ld. These may be static or dynamic libraries. LD_RUN_PATH is 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 at run time on this platform. SunOS/Solaris does not need this because ld records the information (from LDLOADLIBS) into the object file. This list is used to create a .bs (bootstrap) file.

# PORTABILITY

This module deals with a lot of system dependencies and has quite a few architecture specific ifs in the code.

# SEE ALSO

ExtUtils::MakeMaker