man Carp::Datum::MakeMaker () - Offer to strip Carp::Datum calls statically

NAME

Carp::Datum::MakeMaker - Offer to strip Carp::Datum calls statically

SYNOPSIS

 # Put this at the top of the Makefile.PL for your module
 use ExtUtils::MakeMaker;       # you may omit this line
 use Carp::Datum::MakeMaker;

DESCRIPTION

The CWCarp::Datum::MakeMaker module supersedes the regular WriteMakefile() routine of CWExtUtils::MakeMaker.

When running the Makefile.PL from a module interactively, the user will be asked whether calls to CWCarp::Datum should be stripped at build time.

By default, or when running non-interactively, most calls to Carp::Datum routines will be removed: the CWdatum_strip program will be invoked to filter *.pm files during the build process. This program is a mere wrapper for the datum_strip() routine, defined in CWCarp::Datum::Strip.

The only call that will not be stripped is the DTRACE() call. However, it will be dynamically remapped to a CWLog::Agent call. It cannot be statically remapped because of its baroque interface.

At the top of Makefile.PL, insert

    use Carp::Datum::MakeMaker;

which will take care of loading CWExtUtils::MakeMaker. Note that it makes sense to refer to this module, since CWCarp::Datum is being used internally, and therefore the user will not be able to install the module if they do not have CWCarp::Datum already installed.

If you wish to be nicer about CWCarp::Datum not being installed, you can say instead:

    use ExtUtils::MakeMaker;
    eval "use Carp::Datum::MakeMaker;";

    WriteMakefile(
        'NAME'      => "Your::module::name",
        'PREREQ_PM' => {
            'Carp::Datum'  => '0.100',
        },
    );

It will allow them to run the Makefile.PL, and yet be reminded about the missing CWCarp::Datum module. Chances are they won't be able to go much farther though...

AUTHORS

Christophe Dehaudt and Raphael Manfredi are the original authors.

Send bug reports, hints, tips, suggestions to Dave Hoover at <squirrel@cpan.org>.

SEE ALSO