.\" -*- 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 "Module::Build::Tiny 3pm" .TH Module::Build::Tiny 3pm 2023-10-03 "perl v5.38.0" "User Contributed Perl Documentation" .\" 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 Module::Build::Tiny \- A tiny replacement for Module::Build .SH VERSION .IX Header "VERSION" version 0.047 .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 2 \& use Module::Build::Tiny; \& Build_PL(); .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" Many Perl distributions use a Build.PL file instead of a Makefile.PL file to drive distribution configuration, build, test and installation. Traditionally, Build.PL uses Module::Build as the underlying build system. This module provides a simple, lightweight, drop-in replacement. .PP Whereas Module::Build has over 6,700 lines of code; this module has less than 200, yet supports the features needed by most distributions. .SS Supported .IX Subsection "Supported" .IP \(bu 4 Pure Perl distributions .IP \(bu 4 Building XS or C .IP \(bu 4 Recursive test files .IP \(bu 4 MYMETA .IP \(bu 4 Man page generation .IP \(bu 4 Generated code from PL files .IP \(bu 4 Module sharedirs .SS "Not Supported" .IX Subsection "Not Supported" .IP \(bu 4 Dynamic prerequisites .IP \(bu 4 HTML documentation generation .IP \(bu 4 Extending Module::Build::Tiny .SS "Directory structure" .IX Subsection "Directory structure" Your .pm, .xs and .pod files must be in \fIlib/\fR. Any executables must be in \&\fIscript/\fR. Test files must be in \fIt/\fR. Dist sharedirs must be in \fIshare/\fR, module sharedirs are under \fImodule-share\fR (e.g. \fImodule\-share/Foo\-Bar\fR for module \f(CW\*(C`Foo::Bar\*(C'\fR). .PP \&\f(CW\*(C`.c\*(C'\fR files in the \fIsrc/\fR are compiled together with the .xs file matching the distribution name. .SH USAGE .IX Header "USAGE" These all work pretty much like their Module::Build equivalents. .SS "perl Build.PL" .IX Subsection "perl Build.PL" .SS "Build [ build ]" .IX Subsection "Build [ build ]" .SS "Build test" .IX Subsection "Build test" .SS "Build install" .IX Subsection "Build install" This supports the following options: .IP \(bu 4 verbose .IP \(bu 4 install_base .IP \(bu 4 installdirs .IP \(bu 4 prefix .IP \(bu 4 install_path .IP \(bu 4 destdir .IP \(bu 4 uninst .IP \(bu 4 config .IP \(bu 4 pure-perl .IP \(bu 4 create_packlist .SH AUTHORING .IX Header "AUTHORING" This module doesn't support authoring. To develop modules using Module::Build::Tiny, usage of Dist::Zilla::Plugin::ModuleBuildTiny or App::ModuleBuildTiny is recommended. .SH "CONFIG FILE AND ENVIRONMENT" .IX Header "CONFIG FILE AND ENVIRONMENT" Options can be provided in the \f(CW\*(C`PERL_MB_OPT\*(C'\fR environment variable the same way they can with Module::Build. This should be done during the configuration stage. .SS Incompatibilities .IX Subsection "Incompatibilities" .IP \(bu 4 Argument parsing .Sp Module::Build has an extremely permissive way of argument handling, Module::Build::Tiny only supports a (sane) subset of that. In particular, \f(CW\*(C`./Build destdir=/foo\*(C'\fR does not work, you will need to pass it as \f(CW\*(C`./Build \-\-destdir=/foo\*(C'\fR. .IP \(bu 4 \&.modulebuildrc .Sp Module::Build::Tiny does not support .modulebuildrc files. In particular, this means that versions of local::lib older than 1.006008 may break with \f(CW\*(C`ERROR: Can\*(Aqt create /usr/local/somepath\*(C'\fR. If the output of \f(CW\*(C`perl \-Mlocal::lib\*(C'\fR contains \f(CW\*(C`MODULEBUILDRC\*(C'\fR but not \f(CW\*(C`PERL_MB_OPT \*(C'\fR, you will need to upgrade it to resolve this issue. .SH "SEE ALSO" .IX Header "SEE ALSO" Module::Build .SH AUTHORS .IX Header "AUTHORS" .IP \(bu 4 Leon Timmermans .IP \(bu 4 David Golden .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2011 by Leon Timmermans, David Golden. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.