NAME
Alien::GSL - Easy installation of the GSL library
DESCRIPTION
This module is meant to ease the install of the Gnu Scientific Library (GSL). It also provides version checking and build flags via the gsl-config utility.
SYNOPSIS
use Alien::GSL;
unless (Alien::GSL::require_gsl_version('1.15')) {
die "This module requires at least GSL 1.15";
}
INSTALLATION
Alien::GSL uses the Module::Build system for installation. Therefore the usual build process is
perl Build.PL
./Build
./Build test
./Build install
It will try (at a minimum) to detect if the GSL library is installed on the local system. If not it will attempt, if possible, to download/build/install it. This build process will likely require the Build
script to be run with root privaledges. Future versions of Alien::GSL may try to avoid this problem. This is not necessary if the library is already installed on the system.
Build Flags
When running ./Build
, certain command line flags may be passed, i.e. ./Build --ShareDir
.
--Version 1.15
-
Specify a version of the GSL library to be installed (here
1.15
). Without this flag, the highest (read: newest) version available will be used. If a supplied version cannot be found, the install will croak. -
When this flag is given,
File::ShareDir
will be used, even if a system install was possible (i.e. on Linux as root). --Force
-
When this flad is given, action will be taken, even if a system install of GSL is found. Note that this flag is not needed if
--ShareDir
is used. --Dir dir
-
Specify a directory (here
dir
) to download and build the library. This directory will not be removed later. --TempDir /dev/shm
-
Specify a location for the temporary (here
/dev/shm/
, the ramdisk on Ubuntu Linux). --GSLCheck
-
When this flag is given, if GSL is to be built from source, also include
make check
in the build phase (beforemake install
). Has no effect if GSL is not going to be built from source.
NO EXPORTS
Currently this module does not export any functions or variables. Use instead the fully qualified symbol name, i.e. Alien::GSL::gsl_version()
.
INTERFACE STABILITY
This module is in an alpha state. The author hopes that major functionality will remain. The module now uses Module::Build which allows the install functionality (download, build, install) to be platform specific and separated from the usage functionality described in the "MODULE FUNCTIONS" section.
MODULE FUNCTIONS
These functions are basically a functional interface to the gsl-config
utility command.
gsl_version
Takes no options, returns the version number of the installed GSL library.
require_gsl_version( [$version] )
A wrapper around gsl_version()
which (optionally) takes a number specifying a minimum GSL version, returns the GSL version if it is greater than or equal to that specified. Returns zero otherwise. May also be called with zero as the version parameter, or no parameter at all, in which case the behavior is the same as gsl_version()
.
gsl_prefix
Takes no options, returns the "GSL installation prefix".
gsl_libs( [opts hash or hash reference] )
Takes an optional hash or hash reference, returns "library linking information". A hash key cblas
, whose value is false will return the "library linking information, without cblas", though by default the cblas information is included.
gsl_cflags
Takes no options, returns the "pre-processor and compiler flags".
TODO
Find a better download site for the compiled libraries.
Build 64 bit libraries.
Clean the
share_dir
directory whenACTION_clean
is run.Improve tests for
Alien::GSL
.Are tests possible for
Module::Build
subclasses?
SEE ALSO
SOURCE REPOSITORY
http://github.com/jberger/Alien-GSL
AUTHOR
Joel Berger, <joel.a.berger@gmail.com>
COPYRIGHT AND LICENSE
Copyright (C) 2011 by Joel Berger
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.