Code Monkey home page Code Monkey logo

alien-autotools's Introduction

Alien::Autotools static linux windows macos

Build and install the GNU build system.

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

AUTHOR

Original author: Richard Simões

Current maintainer: Graham Ollis [email protected]

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

alien-autotools's People

Contributors

plicease avatar

Stargazers

Justin Ellis avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.