@node ExtUtils/Liblist, ExtUtils/MM_OS2, ExtUtils/Install, Module List
@unnumbered determine libraries to use and how to use them


@unnumberedsec NAME

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

@unnumberedsec SYNOPSIS

@code{require ExtUtils::Liblist;}

@code{ExtUtils::Liblist::ext($potential_libs, $Verbose);}

@unnumberedsec DESCRIPTION

This utility takes a list of libraries in the form @code{-llib1 -llib2
-llib3} and prints out lines suitable for inclusion in an extension
Makefile.  Extra library paths may be included with the form
@code{-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:

@itemize @bullet
@item For static extensions

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

@item For dynamic extensions

by the ld command when the shared object is built/linked. See
LDLOADLIBS below.

@item For dynamic extensions

by the DynaLoader when the shared object is loaded. See BSLOADLIBS
below.

@end itemize
@unnumberedsubsec 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.

@unnumberedsubsec 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.

@unnumberedsubsec 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.

@unnumberedsec PORTABILITY

This module deals with a lot of system dependencies and has quite a
few architecture specific @strong{if}s in the code.

@unnumberedsec SEE ALSO

@xref{ExtUtils/MakeMaker,ExtUtils/MakeMaker},

