Author image Graham Ollis 🇺🇦🌻
and 2 contributors

NAME

Alien::Autotools - Build and install the GNU build system.

VERSION

version 1.07

SYNOPSIS

From Perl:

 use Alien::Autotools;
 use Env qw( @PATH @ACLOCAL_PATH );
 
 unshift @PATH, Alien::Autotools->bin_dir;
 unshift @ACLOCAL_PATH, Alien::Autotools->aclocal_dir;
 
 system 'autoconf', ...;

From alienfile:

 use alienfile;
 
 share {
   # Alien::Autotools will pull in:
   #  - Alien::autoconf
   #  - Alien::automake
   #  - Alien::m4
   #  - Alien::libtool
   # all of which you will likely need.
   requires 'Alien::Autotools';
   plugin 'Build::Autoconf';
   build [
     '%{autoreconf} -vfi',
     '%{configure}',
     '%{make}',
     '%{make} install',
   ];
 };

DESCRIPTION

This Alien provides the minimum tools requires for building autoconf based projects which do not come bundled with a working configure script. It currently delegates most of its responsibilities to Alien::autoconf, Alien::automake, Alien::libtool, and Alien::m4.

The most common use case from an alienfile is shown above where autoreconf is called from this Alien, which allows the Alien::Build::Plugin::Build::Autoconf to then configure and build the alienized package.

METHODS

bin_dir

 my @dirs = Alien::Autotools->bin_dir;

Returns the list of directories that need to be added to PATH in order for the autotools to work correctly.

aclocal_dir

 my @dirs = Alien::Autotools->aclocal_dir;

Returns the list of directories that need to be added to ACLOCAL_PATH in order for the autotools to work correctly.

versions

 my %versions = Alien::Autotools->versions;

Returns the versions of the various autotools that are available.

autoconf_dir

 # legacy interface
 use Alien:::Autotools qw( autoconf_dir );
 my $dir = autoconf_dir;

Returns the directory path to autoconf

automake_dir

 # legacy interface
 use Alien:::Autotools qw( automake_dir );
 my $dir = automake_dir;

Returns the directory path to automake

libtool_dir

 # legacy interface
 use Alien:::Autotools qw( libtool_dir );
 my $dir = libtool_dir;

Returns the directory path to libtool

CAVEATS

This module is typically needed for other Aliens for a share install that use the autotools / GNU build system without bundling a pre-built configure script. If possible it is better to use a version of the alienized package that includes a pre-built configure script.

If you are a system vendor, then you should typically not need to package this module, check to see if the dependency that requires it can be built as a system install instead.

HELPERS

This Alien provides all of the helpers provides by Alien::m4, Alien::autoconf, Alien::automake and Alien::libtool. Each helper will execute the corresponding command. You will want to sue the helpers instead of using the command names directly because they will use the correct incantation on Windows. The following list is a subset of all of the helpers provided by this alien that are probably the most useful.

m4
autoreconf
automake
libtool
libtoolize

SEE ALSO

Alien
Alien::Build
alienfile
Alien::autoconf
Alien::automake
Alien::libtool
Alien::m4

AUTHOR

Original author: Richard Simões

Current maintainer: Graham Ollis <plicease@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2012-2022 by Richard Simões.

This is free software, licensed under:

  The GNU Lesser General Public License, Version 3, June 2007