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

NAME

Alien::Base::ModuleBuild - A Module::Build subclass for building Alien:: modules and their libraries

SYNOPSIS

In your Build.PL:

 use Alien::Base::ModuleBuild;
 
 my $builder = Alien::Base::Module::Build->new(
   module_name => 'Alien::MyLibrary',
   
   configure_requires => {
     'Alien::Base' =>   '0.005',
     'Module::Build' => '0.28'
   },
   requires => {
     'Alien::Base' => '0.005',
   },
   
   alien_name => 'mylibrary', # the pkg-config name if you want
                              # to use pkg-config to discover
                              # system version of the mylibrary
   
   alien_repository => {
     protocol => 'http',
     host     => 'myhost.org',
     location => '/path/to/tarballs',
     pattern  => qr{^mylibrary-([0-9\.]+)\.tar\.gz$},
   },
   
   # this is the default:
   alien_build_commands => [
     "%c --prefix=%s", # %c is a platform independent version of ./configure
     "make",
   ],
   
   # this is the default for install:
   alien_install_commands => [
     "make install",
   ],
   
   alien_isolate_dynamic => 1,
 );

DESCRIPTION

This is a subclass of Module::Build, that with Alien::Base allows for easy creation of Alien distributions. This module is used during the build step of your distribution. When properly configured it will

use pkg-config to find and use the system version of the library
download, build and install the library if the system does not provide it

GUIDE TO DOCUMENTATION

The documentation for Module::Build is broken up into sections:

General Usage (Module::Build)

This is the landing document for Alien::Base::ModuleBuild's parent class. It describes basic usage and background information. Its main purpose is to assist the user who wants to learn how to invoke and control Module::Build scripts at the command line.

It also lists the extra documentation for its use. Users and authors of Alien:: modules should familiarize themselves with these documents. Module::Build::API is of particular importance to authors.

Alien-Specific Usage (Alien::Base::ModuleBuild)

This is the document you are currently reading.

Authoring Reference (Alien::Base::Authoring)

This document describes the structure and organization of Alien::Base based projects, beyond that contained in Module::Build::Authoring, and the relevant concepts needed by authors who are writing Build.PL scripts for a distribution or controlling Alien::Base::ModuleBuild processes programmatically.

Note that as it contains information both for the build and use phases of Alien::Base projects, it is located in the upper namespace.

API Reference (Alien::Base::ModuleBuild::API)

This is a reference to the Alien::Base::ModuleBuild API beyond that contained in Module::Build::API.

AUTHOR

Joel Berger <joel.a.berger@gmail.com>

SEE ALSO

SOURCE REPOSITORY

http://github.com/Perl5-Alien/Alien-Base

AUTHOR

Joel Berger, <joel.a.berger@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2012-2014 by Joel Berger

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