NAME

Acme::Module::Build::Tiny - A tiny replacement for Module::Build

SYNOPSIS

# From the command line, run this:
$ btiny

# Which generates this Build.PL:
use inc; use Acme::Module::Build::Tiny;

# That's it!

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.

Whereas Module::Build has over 6,700 lines of code; this module has under 200, yet supports the features needed by most pure-Perl distributions along with some useful automation for lazy programmers. Plus, it bundles itself with the distribution, so end users don't even need to have it (or Module::Build) installed.

Supported

* Pure purl distributions
* Recursive test files
* Automatic 'requires' and 'build_requires' detection (see below)
* Automatic MANIFEST generation
* Automatic MANIFEST.SKIP generation (if not supplied)
* Automatically bundles itself in inc/

Not Supported

* Dynamic prerequisites
* Generated code from PL files
* Building XS or C
* Manpage or HTML documentation generation
* Subclassing Acme::Module::Build::Tiny
* Licenses in META.yml other than 'perl'

Other limitations

* May only work on a Unix-like or Windows OS
* This is an Acme module -- use at your own risk

Directory structure

Your .pm and .pod files must be in lib/. Any executables must be in bin/. Test files must be in t/. Bundled test modules must be in t/lib/.

Automatic prequisite detection

Prerequisites of type 'requires' are automatically detected in *.pm files in lib/ from lines that contain a use() function with a version number. E.g.:

use Carp 0 qw/carp croak/;
use File::Spec 0.86 ();

Lines may have leading white space. You may not have more than one use() function per line. No other use() or require() functions are detected.

Prerequisites of type 'build_requires' are automatically detected in a similar fashion from any *.t files (recusively) in t/ and from any *.pm files in t/lib/.

USAGE

These all work pretty much like their Module::Build equivalents. The only configuration options currently supported are:

  • install_base

  • uninst

perl Build.PL

Build

Build test

Build install

Build clean

Build realclean

Build distdir

Build dist

CONFIG FILE AND ENVIRONMENT

Not yet supported.

SEE ALSO

Module::Build

AUTHOR

David Golden <dagolden@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by David A. Golden

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.