Module:...Makefile(3)
π Module::Install::MakeMaker β Extension Rules for ExtUtils::MakeMaker β¨
okay so bestie, you're reading a User Contributed Perl Documentation page for Module:...Makefile(3) and honestly? it's giving "short but mighty" π let's get into it.
πΈ SYNOPSIS πΈ
in your Makefile.PL, you literally just do this:
use inc::Module::Install;
WriteMakefile();
that's it. that's the whole vibe. slay π
π¦ DESCRIPTION π¦
so this module is a cute lil wrapper around ExtUtils::MakeMaker β like it's the bestie that handles the small talk for you π«Ά
it exports two functions:
promptβ which is literally just an alias forExtUtils::MakeMaker::promptWriteMakefileβ the main character π
here's the tea on WriteMakefile: it passes on keyword/value pair functions straight to ExtUtils::MakeMaker::WriteMakefile. and the required parameters NAME and VERSION (or VERSION_FROM) are not necessary if it can find them unambiguously in your code. no cap, it'll just figure it out β¨
π CONFIGURATION OPTIONS π
this module also adds some Configuration parameters of its own, and they're lowkey iconic:
π NAME
NAME is required by ExtUtils::MakeMaker, periodt. but here's the thing β if you have a single module in your distribution, or if the module name indicated by the current directory exists under lib/, this module will use the guessed package name as the default π§
and if it can't find a default for NAME? it will just ask you to specify it manually. awkward but make it work π
π VERSION
ExtUtils::MakeMaker requires either the VERSION or VERSION_FROM parameter β no skipping that one.
but if this module can guess the package's NAME, it will attempt to parse the VERSION from it π₯
and if it can't find a default for VERSION? yep, it asks you to specify it manually. same energy π
π MAKE TARGETS π
ExtUtils::MakeMaker provides you with many useful make targets. a "make target" is just the word you specify after make β like test for make test. highkey useful. some of the more useful targets are:
allβ this is the default target. when you typemakeit's the same as enteringmake all. this target builds all of your code and stages it in theblibdirectory. iconic behaviour π«Άtestβ run your distribution's test suite. go off bestie πΈinstallβ copy the contents of theblibdirectory into the appropriate directories in your Perl installation.distβ create a distribution tarball, ready for uploading to CPAN or sharing with a friend πclean distclean purgeβ remove the files created byperl Makefile.PLandmake.helpβ same as typingperldoc ExtUtils::MakeMaker.
now this module modifies the behaviour of some of these targets, depending on your requirements, and also adds the following targets to your Makefile π:
cpurgeβ just likepurge, except that it also deletes the files originally added by this module itself. self-aware king behaviour πchelpβ short cut for typingperldoc Module::Install.distsignβ short cut for typingcpansign -s, for Module::Signature users to sign the distribution before release β¨
π¦ SEE ALSO π¦
Module::InstallCPAN::MakeMakerCPAN::MakeMaker::Philosophy
go read them, iykyk π
π«Ά AUTHORS π«Ά
- Adam Kennedy
<adamk@cpan.org> - Audrey Tang
<autrijus@autrijus.org> - Brian Ingerson
<INGY@cpan.org>
π COPYRIGHT π
some parts copyright 2008 - 2012 Adam Kennedy.
copyright 2002, 2003, 2004 Audrey Tang and Brian Ingerson.
this program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
fr fr, it's free software β share it, remix it, just keep the same terms as Perl itself π
β and that's the whole page bestie! this doc ships with perl v5.42.0, dated 2023-04-29 β thanks for reading, mwah πβ¨
π¦ where this page comes from
- opensuse-leap 16.0: perl-Module-Install 1.21-bp160.1.12 Β· Artistic-1.0 OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms