ASPEER::MakeMaker::MM::Util
Name
ASPEER::MakeMaker::MM::Util - shared utility functions for MakeMaker helpers
Synopsis
use ASPEER::MakeMaker::MM::Util;
msg('building %s', $name);
my $text = slurp($file);
blurp($file, $text);
my $param = arg(@make_target_args);
my $perlrun = perlrun($hook_object, $make_maker_object);
Description
ASPEER::MakeMaker::MM::Util exports support functions used by the rest of the distribution. The helpers cover formatted messages, debugging, simple file I/O, MakeMaker target argument parsing, and construction of a Perl command for generated make targets.
All listed functions are exported by default.
Functions
quiet_enable
quiet_enable();
quiet_enable($value);
Enables quiet mode. When quiet mode is active, C<msg> and C<verbose> output is
suppressed.
verbose_enable
verbose_enable();
verbose_enable($value);
Enables verbose output for C<verbose>.
debug_enable
debug_enable($value);
Sets the debug flag used by C<debug>.
The module also enables debug mode at load time if an environment variable named after the current script plus _DEBUG is set.
msg
msg('message %s', $value);
Prints a formatted message to standard error unless quiet mode is enabled.
verbose
verbose('message %s', $value);
Prints a formatted message to standard error only when verbose mode is enabled
and quiet mode is not enabled.
debug
debug('message %s', $value);
Prints a debug message to standard error when debug mode is enabled. The output
includes caller package, method, and line information.
err
err('unable to process %s', $file);
Prints a formatted error message and croaks.
slurp
my $text = slurp($file);
Reads and returns the full contents of a file using C<IO::File>. On failure,
calls C<err>.
blurp
blurp($file, $text);
Writes text to a file, replacing any existing content. Open, write, and close
failures call C<err>.
touch
touch($file);
Ensures a file exists. If the file is missing, creates it as an empty file.
arg
my $param = arg(@args);
Parses the fixed argument sequence passed by generated make targets into a hash
reference. The recognized fields are:
- -
-
NAME - -
-
NAME_SYM - -
-
DISTNAME - -
-
DISTVNAME - -
-
VERSION - -
-
VERSION_SYM - -
-
VERSION_FROM - -
-
LICENSE - -
-
AUTHOR - -
-
TO_INST_PM - -
-
EXE_FILES - -
-
DIST_DEFAULT_TARGET - -
-
SUFFIX - -
-
ABSTRACT_FROM
Any remaining values are stored in ARGV_AR.
The helper also derives:
- -
-
TO_INST_PM_ARfrom whitespace-splittingTO_INST_PM - -
-
EXE_FILES_ARfrom whitespace-splittingEXE_FILES
perlrun
my $command = perlrun($hook_object, $make_maker_object);
Builds the global Makefile C<PERLRUN> command beginning with C<$(PERL)>. It
includes non-default local C<@INC> directories as C<-I> options, loaded
C<ExtUtils::*> modules as C<-M> options, and the registered MakeMaker extension
classes in activation order. Modules are emitted once. When supplied, the
active MakeMaker object quotes C<-I> arguments for the platform shell.
This value is installed into MakeMaker's PERLRUN macro by ASPEER::MakeMaker::MM::Import::const_config and is reused by generated targets.
Usage Conventions
Functions in this module are intended for build-time helper code and generated make target methods. New make target methods should use arg to decode their calling arguments instead of reading positional values directly.
See Also
AUTHOR
Andrew Speer mailto:andrew.speer@isolutions.com.au
LICENSE AND COPYRIGHT
This software is copyright (c) 2026 by Andrew Speer. It may be distributed under the same terms as Perl itself.