NAME
Module::Install::XSUtil - Utility functions for XS modules
VERSION
This document describes Module::Install::XSUtil version 0.23.
SYNOPSIS
# in Makefile.PL
use inc::Module::Install;
# Enables C compiler warnings
cc_warnings;
# Uses ppport.h
# No need to include it. It's created here.
use_ppport 3.19;
# Sets C pre-processor macros.
cc_define q{-DUSE_SOME_FEATURE=42};
# Sets paths for header files
cc_include_paths 'include'; # all the header files are in include/
# Sets paths for source files
cc_src_paths 'src'; # all the XS and C source files are in src/
# Installs header files
install_headers; # all the header files in @cc_include_paths
# This is a special version of requires().
# If XS::SomeFeature provides header files,
# this will add its include paths into INC
requies_xs 'XS::SomeFeature';
DESCRIPTION
Module::Install::XSUtil provides a set of utilities to setup distributions which include or depend on XS module.
See XS::MRO::Compat and Method::Cumulative for example.
FUNCTIONS
cc_available
Returns true if a C compiler is available. If one passes --xs
to Makefile.PL, this command returns true, and If one passes --pp
, it returns false.
This uses ExtUtils::CBuilder
.
requires_xs $module => ?$version
Does requires()
and setup include paths and libraries for what $module provides.
use_ppport ?$version
Create ppport.h using Devel::PPPort::WriteFile()
.
This command calls configure_requires 'Devel::PPPort' => $version
and adds -DUSE_PPPORT
to MakeMaker
's DEFINE
.
cc_warnings
Enables C compiler warnings.
cc_define @macros
Sets cpp
macros as compiler options.
cc_src_paths @source_paths
Sets source file directories which include *.xs or *.c.
cc_include_paths @include_paths
Sets include paths for a C compiler.
cc_libs @libs
Sets MakeMaker
's LIBS
. If a name starts -
, it will be interpreted as is. Otherwise prefixed -l
.
e.g.:
cc_libs -lfoo;
cc_libs 'foo'; # ditto.
cc_libs qw(-L/path/to/libs foo bar); # with library paths
install_headers ?@header_files
Declares providing header files, extracts functions from these header files, and adds these functions to MakeMaker
's FUNCLIST
.
If @header_files are omitted, all the header files in include paths will be installed.
cc_append_to_inc @include_paths
Low level API.
cc_append_to_libs @libraries
Low level API.
cc_append_to_ccflags @ccflags
Low level API.
cc_append_to_funclist @funclist
Low level API.
OPTIONS
Under the control of this module, Makefile.PL accepts -g
option, which sets MakeMaker
's OPTIMIE
-g
(or something like). It will disable optimization and enable some debugging features.
DEPENDENCIES
Perl 5.5.3 or later.
NOTE
In Makefile.PL, you might want to use author_requires
, which is provided by Module::Install::AuthorReauires
, in order to tell co-developers that they need to install this plugin.
author_requires 'Module::Install::XSUtil';
BUGS
No bugs have been reported.
Please report any bugs or feature requests to the author.
AUTHOR
Goro Fuji (gfx) <gfuji(at)cpan.org>.
SEE ALSO
LICENSE AND COPYRIGHT
Copyright (c) 2009-2010, Goro Fuji (gfx). Some rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.