The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::SmokeBrew::BuildPerl - build and install a particular version of Perl

VERSION

version 0.52

SYNOPSIS

  use strict;
  use warnings;
  use App::SmokeBrew::BuildPerl;

  my $bp = App::SmokeBrew::BuildPerl->new(
    version     => '5.12.0',
    builddir   => 'build',
    prefix      => 'prefix',
    skiptest    => 1,
    verbose     => 1,
    perlargs    => [ '-Dusemallocwrap=y', '-Dusemymalloc=n' ],
  );

  my $prefix = $bp->build_perl();

  print $prefix, "\n";

DESCRIPTION

App::SmokeBrew::BuildPerl encapsulates the task of configuring, building, testing and installing a perl executable ( and associated core modules ).

CONSTRUCTOR

new

Creates a new App::SmokeBrew::BuildPerl object. Takes a number of options.

version

A required attribute, this is the version of perl to install. Must be a valid perl version.

builddir

A required attribute, this is the working directory where builds can take place. It will be coerced into a Path::Class::Dir object by MooseX::Types::Path::Class.

prefix

A required attribute, this is the prefix of the location where perl installs will be made, it will be coerced into a Path::Class::Dir object by MooseX::Types::Path::Class.

example:

  prefix = /home/cpan/pit/rel
  perls will be installed as /home/cpan/pit/perl-5.12.0, /home/cpan/pit/perl-5.10.1, etc.
skiptest

Optional boolean attribute, which defaults to 0, indicates whether the testing phase of the perl installation ( make test ) should be skipped or not.

perlopts

Optional attribute, takes an arrayref of perl configuration flags that will be passed to Configure. There is no need to specify -Dprefix or -Dusedevel as the module handles these for you.

  perlopts => [ '-Dusethreads', '-Duse64bitint' ],
verbose

Optional boolean attribute, which defaults to 0, indicates whether we should produce verbose output.

noclean

Optional boolean attribute, which defaults to 0, indicates whether we should cleanup files that we produce under the builddir or not.

nozapman

This is an optional boolean attribute. Usually man pages that are generated by the perl installation are removed. Specify this option if you wish the man pages to be retained.

make

Optional attribute to specify the make utility to use. Defaults to make and you should only have to mess with this on wacky platforms.

mirrors

This is an optional argument. Specify the URL of a CPAN mirror that should be used for retrieving required files during the build process. This may be a single URL or an arrayref of a number of URLs.

METHODS

build_perl

Fetches, extracts, configures, builds, tests (see skiptest) and installs the perl executable.

The builddir is used for the first five processes. Installation is made into the given prefix directory.

SEE ALSO

App::perlbrew

Module::CoreList

AUTHOR

Chris Williams <chris@bingosnet.co.uk>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Chris Williams.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.