NAME
Alien::Libarchive - Build and make available libarchive
VERSION
version 0.21
SYNOPSIS
Build.PL
use Alien::Libarchive;
use Module::Build;
my $alien = Alien::Libarchive->new;
my $build = Module::Build->new(
...
extra_compiler_flags => $alien->cflags,
extra_linker_flags => $alien->libs,
...
);
$build->create_build_script;
Makefile.PL
use Alien::Libarchive;
use ExtUtils::MakeMaker;
my $alien = Alien::Libarchive;
WriteMakefile(
...
CFLAGS => $alien->cflags,
LIBS => $alien->libs,
);
FFI::Raw
use Alien::Libarchive;
use FFI::Raw;
my($dll) = Alien::Libarchive->new->dlls;
FFI::Raw->new($dll, 'archive_read_new', FFI::Raw::ptr);
FFI::Sweet
use Alien::Libarchive;
use FFI::Sweet;
ffi_lib( Alien::Libarchive->new->dlls );
attach_function 'archive_read_new', [], _ptr;
DESCRIPTION
This distribution installs libarchive so that it can be used by other
Perl distributions. If already installed for your operating system, and
it can be found, this distribution will use the libarchive that comes
with your operating system, otherwise it will download it from the
internet, build and install it.
If you set the environment variable ALIEN_LIBARCHIVE to 'share', this
distribution will ignore any system libarchive found, and build from
source instead. This may be desirable if your operating system comes
with a very old version of libarchive and an upgrade path for the
system libarchive is not possible.
Requirements
operating system install
The development headers and libraries for libarchive
Debian
On Debian you can install these with this command:
% sudo apt-get install libarchive-dev
Cygwin
On Cygwin, make sure that this package is installed
libarchive-devel
FreeBSD
libarchive comes with FreeBSD as of version 5.3.
from source install
A C compiler and any prerequisites for building libarchive.
Debian
On Debian build-essential should be good enough:
% sudo apt-get install build-essential
Cygwin
On Cygwin, I couldn't get libarchive to build without making a minor
tweak to one of the include files. On Cygwin this module will patch
libarchive before it attempts to build if it is version 3.1.2.
METHODS
cflags
Returns the C compiler flags necessary to build against libarchive.
Returns flags as a list in list context and combined into a string in
scalar context.
libs
Returns the library flags necessary to build against libarchive.
Returns flags as a list in list context and combined into a string in
scalar context.
dlls
Returns a list of dynamic libraries (usually a list of just one
library) that make up libarchive. This can be used for FFI::Raw.
Returns just the first dynamic library found in scalar context.
install_type
Returns the install type, one of either system or share.
pkg_config_dir
Returns a path that contains the libarchive.pc file which can be used
by pkg-config for linking against libarchive.
pkg_config_name
Returns the name by which pkg-config knows libarchive (should always be
libarchive).
CAVEATS
Debian Linux and FreeBSD (9.0) have been tested the most in development
of this distribution.
Patches to improve portability and platform support would be eagerly
appreciated.
If you reinstall this distribution, you may need to reinstall any
distributions that depend on it as well.
SEE ALSO
Alien::Libarchive::Installer
Archive::Libarchive::XS
Archive::Libarchive::FFI
Archive::Libarchive::Any
Archive::Ar::Libarchive
Archive::Peek::Libarchive
Archive::Extract::Libarchive
AUTHOR
Graham Ollis <plicease@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Graham Ollis.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.