summaryrefslogtreecommitdiffstats
path: root/upstream/debian-unstable/man3/ExtUtils::CBuilder.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/debian-unstable/man3/ExtUtils::CBuilder.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/debian-unstable/man3/ExtUtils::CBuilder.3perl')
-rw-r--r--upstream/debian-unstable/man3/ExtUtils::CBuilder.3perl299
1 files changed, 299 insertions, 0 deletions
diff --git a/upstream/debian-unstable/man3/ExtUtils::CBuilder.3perl b/upstream/debian-unstable/man3/ExtUtils::CBuilder.3perl
new file mode 100644
index 00000000..f279ecd0
--- /dev/null
+++ b/upstream/debian-unstable/man3/ExtUtils::CBuilder.3perl
@@ -0,0 +1,299 @@
+.\" -*- 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::CBuilder 3perl"
+.TH ExtUtils::CBuilder 3perl 2024-01-12 "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::CBuilder \- Compile and link C code for Perl modules
+.SH SYNOPSIS
+.IX Header "SYNOPSIS"
+.Vb 1
+\& use ExtUtils::CBuilder;
+\&
+\& my $b = ExtUtils::CBuilder\->new(%options);
+\& $obj_file = $b\->compile(source => \*(AqMyModule.c\*(Aq);
+\& $lib_file = $b\->link(objects => $obj_file);
+.Ve
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+This module can build the C portions of Perl modules by invoking the
+appropriate compilers and linkers in a cross-platform manner. It was
+motivated by the \f(CW\*(C`Module::Build\*(C'\fR project, but may be useful for other
+purposes as well. However, it is \fInot\fR intended as a general
+cross-platform interface to all your C building needs. That would
+have been a much more ambitious goal!
+.SH METHODS
+.IX Header "METHODS"
+.IP new 4
+.IX Item "new"
+Returns a new \f(CW\*(C`ExtUtils::CBuilder\*(C'\fR object. A \f(CW\*(C`config\*(C'\fR parameter
+lets you override \f(CW\*(C`Config.pm\*(C'\fR settings for all operations performed
+by the object, as in the following example:
+.Sp
+.Vb 3
+\& # Use a different compiler than Config.pm says
+\& my $b = ExtUtils::CBuilder\->new( config =>
+\& { ld => \*(Aqgcc\*(Aq } );
+.Ve
+.Sp
+A \f(CW\*(C`quiet\*(C'\fR parameter tells \f(CW\*(C`CBuilder\*(C'\fR to not print its \f(CWsystem()\fR
+commands before executing them:
+.Sp
+.Vb 2
+\& # Be quieter than normal
+\& my $b = ExtUtils::CBuilder\->new( quiet => 1 );
+.Ve
+.IP have_compiler 4
+.IX Item "have_compiler"
+Returns true if the current system has a working C compiler and
+linker, false otherwise. To determine this, we actually compile and
+link a sample C library. The sample will be compiled in the system
+tempdir or, if that fails for some reason, in the current directory.
+.IP have_cplusplus 4
+.IX Item "have_cplusplus"
+Just like have_compiler but for C++ instead of C.
+.IP compile 4
+.IX Item "compile"
+Compiles a C source file and produces an object file. The name of the
+object file is returned. The source file is specified in a \f(CW\*(C`source\*(C'\fR
+parameter, which is required; the other parameters listed below are
+optional.
+.RS 4
+.ie n .IP """object_file""" 4
+.el .IP \f(CWobject_file\fR 4
+.IX Item "object_file"
+Specifies the name of the output file to create. Otherwise the
+\&\f(CWobject_file()\fR method will be consulted, passing it the name of the
+\&\f(CW\*(C`source\*(C'\fR file.
+.ie n .IP """include_dirs""" 4
+.el .IP \f(CWinclude_dirs\fR 4
+.IX Item "include_dirs"
+Specifies any additional directories in which to search for header
+files. May be given as a string indicating a single directory, or as
+a list reference indicating multiple directories.
+.ie n .IP """extra_compiler_flags""" 4
+.el .IP \f(CWextra_compiler_flags\fR 4
+.IX Item "extra_compiler_flags"
+Specifies any additional arguments to pass to the compiler. Should be
+given as a list reference containing the arguments individually, or if
+this is not possible, as a string containing all the arguments
+together.
+.ie n .IP """C++""" 4
+.el .IP \f(CWC++\fR 4
+.IX Item "C++"
+Specifies that the source file is a C++ source file and sets appropriate
+compiler flags
+.RE
+.RS 4
+.Sp
+The operation of this method is also affected by the
+\&\f(CW\*(C`archlibexp\*(C'\fR, \f(CW\*(C`cccdlflags\*(C'\fR, \f(CW\*(C`ccflags\*(C'\fR, \f(CW\*(C`optimize\*(C'\fR, and \f(CW\*(C`cc\*(C'\fR
+entries in \f(CW\*(C`Config.pm\*(C'\fR.
+.RE
+.IP link 4
+.IX Item "link"
+Invokes the linker to produce a library file from object files. In
+scalar context, the name of the library file is returned. In list
+context, the library file and any temporary files created are
+returned. A required \f(CW\*(C`objects\*(C'\fR parameter contains the name of the
+object files to process, either in a string (for one object file) or
+list reference (for one or more files). The following parameters are
+optional:
+.RS 4
+.IP lib_file 4
+.IX Item "lib_file"
+Specifies the name of the output library file to create. Otherwise
+the \f(CWlib_file()\fR method will be consulted, passing it the name of
+the first entry in \f(CW\*(C`objects\*(C'\fR.
+.IP module_name 4
+.IX Item "module_name"
+Specifies the name of the Perl module that will be created by linking.
+On platforms that need to do prelinking (Win32, OS/2, etc.) this is a
+required parameter.
+.IP extra_linker_flags 4
+.IX Item "extra_linker_flags"
+Any additional flags you wish to pass to the linker.
+.RE
+.RS 4
+.Sp
+On platforms where \f(CWneed_prelink()\fR returns true, \f(CWprelink()\fR
+will be called automatically.
+.Sp
+The operation of this method is also affected by the \f(CW\*(C`lddlflags\*(C'\fR,
+\&\f(CW\*(C`shrpenv\*(C'\fR, and \f(CW\*(C`ld\*(C'\fR entries in \f(CW\*(C`Config.pm\*(C'\fR.
+.RE
+.IP link_executable 4
+.IX Item "link_executable"
+Invokes the linker to produce an executable file from object files. In
+scalar context, the name of the executable file is returned. In list
+context, the executable file and any temporary files created are
+returned. A required \f(CW\*(C`objects\*(C'\fR parameter contains the name of the
+object files to process, either in a string (for one object file) or
+list reference (for one or more files). The optional parameters are
+the same as \f(CW\*(C`link\*(C'\fR with exception for
+.RS 4
+.IP exe_file 4
+.IX Item "exe_file"
+Specifies the name of the output executable file to create. Otherwise
+the \f(CWexe_file()\fR method will be consulted, passing it the name of the
+first entry in \f(CW\*(C`objects\*(C'\fR.
+.RE
+.RS 4
+.RE
+.IP object_file 4
+.IX Item "object_file"
+.Vb 1
+\& my $object_file = $b\->object_file($source_file);
+.Ve
+.Sp
+Converts the name of a C source file to the most natural name of an
+output object file to create from it. For instance, on Unix the
+source file \fIfoo.c\fR would result in the object file \fIfoo.o\fR.
+.IP lib_file 4
+.IX Item "lib_file"
+.Vb 1
+\& my $lib_file = $b\->lib_file($object_file);
+.Ve
+.Sp
+Converts the name of an object file to the most natural name of a
+output library file to create from it. For instance, on Mac OS X the
+object file \fIfoo.o\fR would result in the library file \fIfoo.bundle\fR.
+.IP exe_file 4
+.IX Item "exe_file"
+.Vb 1
+\& my $exe_file = $b\->exe_file($object_file);
+.Ve
+.Sp
+Converts the name of an object file to the most natural name of an
+executable file to create from it. For instance, on Mac OS X the
+object file \fIfoo.o\fR would result in the executable file \fIfoo\fR, and
+on Windows it would result in \fIfoo.exe\fR.
+.IP prelink 4
+.IX Item "prelink"
+On certain platforms like Win32, OS/2, VMS, and AIX, it is necessary
+to perform some actions before invoking the linker. The
+\&\f(CW\*(C`ExtUtils::Mksymlists\*(C'\fR module does this, writing files used by the
+linker during the creation of shared libraries for dynamic extensions.
+The names of any files written will be returned as a list.
+.Sp
+Several parameters correspond to \f(CWExtUtils::Mksymlists::Mksymlists()\fR
+options, as follows:
+.Sp
+.Vb 10
+\& Mksymlists() prelink() type
+\& \-\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+\& NAME | dl_name | string (required)
+\& DLBASE | dl_base | string
+\& FILE | dl_file | string
+\& DL_VARS | dl_vars | array reference
+\& DL_FUNCS | dl_funcs | hash reference
+\& FUNCLIST | dl_func_list | array reference
+\& IMPORTS | dl_imports | hash reference
+\& VERSION | dl_version | string
+.Ve
+.Sp
+Please see the documentation for \f(CW\*(C`ExtUtils::Mksymlists\*(C'\fR for the
+details of what these parameters do.
+.IP need_prelink 4
+.IX Item "need_prelink"
+Returns true on platforms where \f(CWprelink()\fR should be called
+during linking, and false otherwise.
+.IP extra_link_args_after_prelink 4
+.IX Item "extra_link_args_after_prelink"
+Returns list of extra arguments to give to the link command; the arguments
+are the same as for \fBprelink()\fR, with addition of array reference to the
+results of \fBprelink()\fR; this reference is indexed by key \f(CW\*(C`prelink_res\*(C'\fR.
+.SH "TO DO"
+.IX Header "TO DO"
+Currently this has only been tested on Unix and doesn't contain any of
+the Windows-specific code from the \f(CW\*(C`Module::Build\*(C'\fR project. I'll do
+that next.
+.SH HISTORY
+.IX Header "HISTORY"
+This module is an outgrowth of the \f(CW\*(C`Module::Build\*(C'\fR project, to which
+there have been many contributors. Notably, Randy W. Sims submitted
+lots of code to support 3 compilers on Windows and helped with various
+other platform-specific issues. Ilya Zakharevich has contributed
+fixes for OS/2; John E. Malmberg and Peter Prymmer have done likewise
+for VMS.
+.SH SUPPORT
+.IX Header "SUPPORT"
+ExtUtils::CBuilder is maintained as part of the Perl 5 core. Please
+submit any bug reports via the \fIperlbug\fR tool included with Perl 5.
+Bug reports will be included in the Perl 5 ticket system at
+<https://rt.perl.org>.
+.PP
+The Perl 5 source code is available at <https://perl5.git.perl.org/perl.git>
+and ExtUtils-CBuilder may be found in the \fIdist/ExtUtils\-CBuilder\fR directory
+of the repository.
+.SH AUTHOR
+.IX Header "AUTHOR"
+Ken Williams, kwilliams@cpan.org
+.PP
+Additional contributions by The Perl 5 Porters.
+.SH COPYRIGHT
+.IX Header "COPYRIGHT"
+Copyright (c) 2003\-2005 Ken Williams. All rights reserved.
+.PP
+This library is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fBperl\fR\|(1), \fBModule::Build\fR\|(3)