summaryrefslogtreecommitdiffstats
path: root/upstream/archlinux/man3/ExtUtils::Liblist.3perl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /upstream/archlinux/man3/ExtUtils::Liblist.3perl
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/archlinux/man3/ExtUtils::Liblist.3perl')
-rw-r--r--upstream/archlinux/man3/ExtUtils::Liblist.3perl282
1 files changed, 282 insertions, 0 deletions
diff --git a/upstream/archlinux/man3/ExtUtils::Liblist.3perl b/upstream/archlinux/man3/ExtUtils::Liblist.3perl
new file mode 100644
index 00000000..32d39fd9
--- /dev/null
+++ b/upstream/archlinux/man3/ExtUtils::Liblist.3perl
@@ -0,0 +1,282 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "ExtUtils::Liblist 3perl"
+.TH ExtUtils::Liblist 3perl 2024-02-11 "perl v5.38.2" "Perl Programmers Reference Guide"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+ExtUtils::Liblist \- determine libraries to use and how to use them
+.SH SYNOPSIS
+.IX Header "SYNOPSIS"
+.Vb 1
+\& require ExtUtils::Liblist;
+\&
+\& $MM\->ext($potential_libs, $verbose, $need_names);
+\&
+\& # Usually you can get away with:
+\& ExtUtils::Liblist\->ext($potential_libs, $verbose, $need_names)
+.Ve
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+This utility takes a list of libraries in the form \f(CW\*(C`\-llib1 \-llib2
+\&\-llib3\*(C'\fR and returns lines suitable for inclusion in an extension
+Makefile. Extra library paths may be included with the form
+\&\f(CW\*(C`\-L/another/path\*(C'\fR this will affect the searches for all subsequent
+libraries.
+.PP
+It returns an array of four or five scalar values: EXTRALIBS,
+BSLOADLIBS, LDLOADLIBS, LD_RUN_PATH, and, optionally, a reference to
+the array of the filenames of actual libraries. Some of these don't
+mean anything unless on Unix. See the details about those platform
+specifics below. The list of the filenames is returned only if
+\&\f(CW$need_names\fR argument is true.
+.PP
+Dependent libraries can be linked in one of three ways:
+.IP \(bu 2
+For static extensions
+.Sp
+by the ld command when the perl binary is linked with the extension
+library. See EXTRALIBS below.
+.IP \(bu 2
+For dynamic extensions at build/link time
+.Sp
+by the ld command when the shared object is built/linked. See
+LDLOADLIBS below.
+.IP \(bu 2
+For dynamic extensions at load time
+.Sp
+by the DynaLoader when the shared object is loaded. See BSLOADLIBS
+below.
+.SS EXTRALIBS
+.IX Subsection "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.
+.SS "LDLOADLIBS and LD_RUN_PATH"
+.IX Subsection "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.
+.SS BSLOADLIBS
+.IX Subsection "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.
+.SH PORTABILITY
+.IX Header "PORTABILITY"
+This module deals with a lot of system dependencies and has quite a
+few architecture specific \f(CW\*(C`if\*(C'\fRs in the code.
+.SS "VMS implementation"
+.IX Subsection "VMS implementation"
+The version of \fBext()\fR which is executed under VMS differs from the
+Unix\-OS/2 version in several respects:
+.IP \(bu 2
+Input library and path specifications are accepted with or without the
+\&\f(CW\*(C`\-l\*(C'\fR and \f(CW\*(C`\-L\*(C'\fR prefixes used by Unix linkers. If neither prefix is
+present, a token is considered a directory to search if it is in fact
+a directory, and a library to search for otherwise. Authors who wish
+their extensions to be portable to Unix or OS/2 should use the Unix
+prefixes, since the Unix\-OS/2 version of \fBext()\fR requires them.
+.IP \(bu 2
+Wherever possible, shareable images are preferred to object libraries,
+and object libraries to plain object files. In accordance with VMS
+naming conventions, \fBext()\fR looks for files named \fIlib\fRshr and \fIlib\fRrtl;
+it also looks for \fIlib\fRlib and lib\fIlib\fR to accommodate Unix conventions
+used in some ported software.
+.IP \(bu 2
+For each library that is found, an appropriate directive for a linker options
+file is generated. The return values are space-separated strings of
+these directives, rather than elements used on the linker command line.
+.IP \(bu 2
+LDLOADLIBS contains both the libraries found based on \f(CW$potential_libs\fR and
+the CRTLs, if any, specified in Config.pm. EXTRALIBS contains just those
+libraries found based on \f(CW$potential_libs\fR. BSLOADLIBS and LD_RUN_PATH
+are always empty.
+.PP
+In addition, an attempt is made to recognize several common Unix library
+names, and filter them out or convert them to their VMS equivalents, as
+appropriate.
+.PP
+In general, the VMS version of \fBext()\fR should properly handle input from
+extensions originally designed for a Unix or VMS environment. If you
+encounter problems, or discover cases where the search could be improved,
+please let us know.
+.SS "Win32 implementation"
+.IX Subsection "Win32 implementation"
+The version of \fBext()\fR which is executed under Win32 differs from the
+Unix\-OS/2 version in several respects:
+.IP \(bu 2
+If \f(CW$potential_libs\fR is empty, the return value will be empty.
+Otherwise, the libraries specified by \f(CW$Config{perllibs}\fR (see Config.pm)
+will be appended to the list of \f(CW$potential_libs\fR. The libraries
+will be searched for in the directories specified in \f(CW$potential_libs\fR,
+\&\f(CW$Config{libpth}\fR, and in \f(CW\*(C`$Config{installarchlib}/CORE\*(C'\fR.
+For each library that is found, a space-separated list of fully qualified
+library pathnames is generated.
+.IP \(bu 2
+Input library and path specifications are accepted with or without the
+\&\f(CW\*(C`\-l\*(C'\fR and \f(CW\*(C`\-L\*(C'\fR prefixes used by Unix linkers.
+.Sp
+An entry of the form \f(CW\*(C`\-La:\efoo\*(C'\fR specifies the \f(CW\*(C`a:\efoo\*(C'\fR directory to look
+for the libraries that follow.
+.Sp
+An entry of the form \f(CW\*(C`\-lfoo\*(C'\fR specifies the library \f(CW\*(C`foo\*(C'\fR, which may be
+spelled differently depending on what kind of compiler you are using. If
+you are using GCC, it gets translated to \f(CW\*(C`libfoo.a\*(C'\fR, but for other win32
+compilers, it becomes \f(CW\*(C`foo.lib\*(C'\fR. If no files are found by those translated
+names, one more attempt is made to find them using either \f(CW\*(C`foo.a\*(C'\fR or
+\&\f(CW\*(C`libfoo.lib\*(C'\fR, depending on whether GCC or some other win32 compiler is
+being used, respectively.
+.Sp
+If neither the \f(CW\*(C`\-L\*(C'\fR or \f(CW\*(C`\-l\*(C'\fR prefix is present in an entry, the entry is
+considered a directory to search if it is in fact a directory, and a
+library to search for otherwise. The \f(CW$Config{lib_ext}\fR suffix will
+be appended to any entries that are not directories and don't already have
+the suffix.
+.Sp
+Note that the \f(CW\*(C`\-L\*(C'\fR and \f(CW\*(C`\-l\*(C'\fR prefixes are \fBnot required\fR, but authors
+who wish their extensions to be portable to Unix or OS/2 should use the
+prefixes, since the Unix\-OS/2 version of \fBext()\fR requires them.
+.IP \(bu 2
+Entries cannot be plain object files, as many Win32 compilers will
+not handle object files in the place of libraries.
+.IP \(bu 2
+Entries in \f(CW$potential_libs\fR beginning with a colon and followed by
+alphanumeric characters are treated as flags. Unknown flags will be ignored.
+.Sp
+An entry that matches \f(CW\*(C`/:nodefault/i\*(C'\fR disables the appending of default
+libraries found in \f(CW$Config{perllibs}\fR (this should be only needed very rarely).
+.Sp
+An entry that matches \f(CW\*(C`/:nosearch/i\*(C'\fR disables all searching for
+the libraries specified after it. Translation of \f(CW\*(C`\-Lfoo\*(C'\fR and
+\&\f(CW\*(C`\-lfoo\*(C'\fR still happens as appropriate (depending on compiler being used,
+as reflected by \f(CW$Config{cc}\fR), but the entries are not verified to be
+valid files or directories.
+.Sp
+An entry that matches \f(CW\*(C`/:search/i\*(C'\fR reenables searching for
+the libraries specified after it. You can put it at the end to
+enable searching for default libraries specified by \f(CW$Config{perllibs}\fR.
+.IP \(bu 2
+The libraries specified may be a mixture of static libraries and
+import libraries (to link with DLLs). Since both kinds are used
+pretty transparently on the Win32 platform, we do not attempt to
+distinguish between them.
+.IP \(bu 2
+LDLOADLIBS and EXTRALIBS are always identical under Win32, and BSLOADLIBS
+and LD_RUN_PATH are always empty (this may change in future).
+.IP \(bu 2
+You must make sure that any paths and path components are properly
+surrounded with double-quotes if they contain spaces. For example,
+\&\f(CW$potential_libs\fR could be (literally):
+.Sp
+.Vb 1
+\& "\-Lc:\eProgram Files\evc\elib" msvcrt.lib "la test\efoo bar.lib"
+.Ve
+.Sp
+Note how the first and last entries are protected by quotes in order
+to protect the spaces.
+.IP \(bu 2
+Since this module is most often used only indirectly from extension
+\&\f(CW\*(C`Makefile.PL\*(C'\fR files, here is an example \f(CW\*(C`Makefile.PL\*(C'\fR entry to add
+a library to the build process for an extension:
+.Sp
+.Vb 1
+\& LIBS => [\*(Aq\-lgl\*(Aq]
+.Ve
+.Sp
+When using GCC, that entry specifies that MakeMaker should first look
+for \f(CW\*(C`libgl.a\*(C'\fR (followed by \f(CW\*(C`gl.a\*(C'\fR) in all the locations specified by
+\&\f(CW$Config{libpth}\fR.
+.Sp
+When using a compiler other than GCC, the above entry will search for
+\&\f(CW\*(C`gl.lib\*(C'\fR (followed by \f(CW\*(C`libgl.lib\*(C'\fR).
+.Sp
+If the library happens to be in a location not in \f(CW$Config{libpth}\fR,
+you need:
+.Sp
+.Vb 1
+\& LIBS => [\*(Aq\-Lc:\egllibs \-lgl\*(Aq]
+.Ve
+.Sp
+Here is a less often used example:
+.Sp
+.Vb 1
+\& LIBS => [\*(Aq\-lgl\*(Aq, \*(Aq:nosearch \-Ld:\emesalibs \-lmesa \-luser32\*(Aq]
+.Ve
+.Sp
+This specifies a search for library \f(CW\*(C`gl\*(C'\fR as before. If that search
+fails to find the library, it looks at the next item in the list. The
+\&\f(CW\*(C`:nosearch\*(C'\fR flag will prevent searching for the libraries that follow,
+so it simply returns the value as \f(CW\*(C`\-Ld:\emesalibs \-lmesa \-luser32\*(C'\fR,
+since GCC can use that value as is with its linker.
+.Sp
+When using the Visual C compiler, the second item is returned as
+\&\f(CW\*(C`\-libpath:d:\emesalibs mesa.lib user32.lib\*(C'\fR.
+.Sp
+When using the Borland compiler, the second item is returned as
+\&\f(CW\*(C`\-Ld:\emesalibs mesa.lib user32.lib\*(C'\fR, and MakeMaker takes care of
+moving the \f(CW\*(C`\-Ld:\emesalibs\*(C'\fR to the correct place in the linker
+command line.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+ExtUtils::MakeMaker