NAME
    Inline::Module - Support for Inline-based CPAN Extension Modules

SYNOPSIS
    In your module (say "Acme::Math::XS"):

        use Acme::Math::XS::Inline C =>
          "long add(long a, long b) { return a + b; }";

    In "Makefile.PL":

        use lib 'inc';
        use ExtUtils::MakeMaker;
        use Inline::Module;

        WriteMakefile(
          NAME => 'Acme::Math::XS',
          postamble => {
            inline => {
              module => 'Acme::Math::XS',
            },
          },
        );

DESCRIPTION
    This module provides support and documentation for creating and
    maintaining CPAN extension modules. ie Writing XS modules without having
    to learn XS.

    The Inline::Module::Tutorial explains the simple processes involved.

    When used from a "Makefile.PL", this module provides support for
    modifying the Makefile generated by ExtUtils::MakeMaker.

    You just need to provide a "postamble" section. See below.

    You also need to make sure that the "inc/" directory is in @INC. This is
    where the build tools will be when your module is shipped to CPAN.

  postamble Section
    Arguments are key/value pairs.

    "module"
            module => 'My::Module',

        Required. This is the module that contains inline "C" or "C++" code.
        It can be an array ref of multiple modules.

    "stub"
            stub => 'My::Module::Inline',

        Optional. This is the name of the Inline::Module generated stub
        module. It's value defaults to the "module" argument with '::Inline'
        appended. It can be an array ref of multiple modules.

    "ilsm"
            ilsm => 'Inline::CPP',

        Optional. This is the Inline Language Support Module (ilsm) that you
        are using. It defaults to Inline::C. It can be an array ref of
        multiple ilsm-s.

STUB MODULE GENERATION
    During development, Inline::Module needs to generate *stub* modules. For
    the case in the synopsis, it would need to generate
    "Acme::Math::XS::Inline". There a few similar but different ways to do
    this:

        perl -MInline::Module=makestub,Acme::Math::XS::Inline

    or:

        export PERL5OPT='-MInline::Module=autostub'
        prove -lv t/

    or:

        perl Makefile.PL

TPF GRANT
    This module was written as the major portion of the work for a 2014 Perl
    Foundation grant:

    <http://news.perlfoundation.org/2014/09/grant-proposal-inlinecpp-modul.h
    tml>

SEE
    *   Inline::Module::Tutorial

    *   Inline

    *   Inline::C

    *   Inline::CPP

NOTE
    When this module was first created in November 2014, we belatedly
    realized that there was already an Inline::Module on CPAN, by Ingy. The
    other one is to "inline" one module inside another. It appears that
    nobody uses the old one, but if that is not the case, contact INGY and
    he'll redo that one under another name.

AUTHORS
    *   Ingy döt Net <ingy@cpan.org>

    *   David Oswald <davido@cpan.org>

COPYRIGHT
    Copyright 2014. Ingy döt Net.

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

    See <http://www.perl.com/perl/misc/Artistic.html>

