Module::Install::XSUtil - Utility functions for XS modules
This document describes Module::Install::XSUtil version 0.45.
# 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
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.
Returns true if a C compiler is available. YOU DO NOT NEED TO CALL THIS FUNCTION YOURSELF: it will be called for you when this module is initialized, and your Makefile.PL process will exit with 0 status. Only explicitly call if you need to do some esoteric handling when no compiler is available (for example, when you have a pure perl alternative)
Returns true if a C compiler is available and it supports C99 features.
Returns true if the user asked for the XS version or pure perl version of the module.
Will return true if --xs is explicitly specified as the argument to Makefile.PL, and false if --pp is specified. If neither is explicitly specified, will return the value specified by $default. If you do not specify the value of $default, then it will be true.
--xs
--pp
$default
Creates ppport.h using Devel::PPPort::WriteFile().
Devel::PPPort::WriteFile()
This command calls configure_requires 'Devel::PPPort' => $version and adds -DUSE_PPPORT to MakeMaker's DEFINE.
configure_requires 'Devel::PPPort' => $version
-DUSE_PPPORT
MakeMaker
DEFINE
Create sxshelper.h, which is a helper header file to include EXTERN.h, perl.h, XSUB.h and ppport.h, and defines some portability stuff which are not supported by ppport.h.
Optional argument -clean and -realclean set clean_files or realclean_files to the generated file xshelper.h respectably.
-clean
-realclean
clean_files
realclean_files
This command includes use_ppport.
use_ppport
Enables C compiler warnings.
Sets cpp macros as compiler options.
cpp
Sets source file directories which include *.xs or *.c.
Sets include paths for a C compiler.
This was an alias to cc_include_paths, but from 0.42, this is Module::Install::Compiler::cc_inc_paths, which replaces the EUMM's INC parameter.
cc_include_paths
Module::Install::Compiler::cc_inc_paths
INC
Don't use this function. Use cc_include_paths instead.
Sets MakeMaker's LIBS. If a name starts -, it will be interpreted as is. Otherwise prefixed -l.
LIBS
-
-l
e.g.:
cc_libs -lfoo; cc_libs 'foo'; # ditto. cc_libs qw(-L/path/to/libs foo bar); # with library paths
Checks if the given C library is installed via Devel::CheckLib. Takes exactly what Devel::CheckLib takes. Note that you must pass the path names explicitly.
Tells the build system to use C99 features.
Tells the build system to use C++ language.
Declares providing header files, extracts functions from these header files, and adds these functions to MakeMaker's FUNCLIST.
FUNCLIST
If @header_files are omitted, all the header files in include paths will be installed.
Low level API.
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.
-g
OPTIMIE
Perl 5.5.3 or later.
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::AuthorReauires
author_requires 'Module::Install::XSUtil';
No bugs have been reported.
Please report any bugs or feature requests to the author.
Thanks to Taro Nishino for the test reports.
Tanks to lestrrat for the suggestions and patches.
Goro Fuji (gfx) <gfuji(at)cpan.org>.
ExtUtils::Depends.
Module::Install.
Module::Install::CheckLib.
Devel::CheckLib.
ExtUtils::MakeMaker.
Copyright (c) 2009-2010, Goro Fuji (gfx). All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Module::Install::XSUtil, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Module::Install::XSUtil
CPAN shell
perl -MCPAN -e shell install Module::Install::XSUtil
For more information on module installation, please visit the detailed CPAN module installation guide.