Module::Install::Makefile(3) User Contributed Perl Documentation Module::Install::Makefile(3)

# [NAME](#NAME)

Module::Install::MakeMaker - Extension Rules for ExtUtils::MakeMaker

# [SYNOPSIS](#SYNOPSIS)

In your *Makefile.PL*:

```
    use inc::Module::Install;
    WriteMakefile();
```

# [DESCRIPTION](#DESCRIPTION)

This module is a wrapper around **ExtUtils::MakeMaker**. It exports two functions: "prompt" (an alias for "ExtUtils::MakeMaker::prompt") and "WriteMakefile".

The "WriteMakefile" function will pass on keyword/value pair functions to "ExtUtils::MakeMaker::WriteMakefile". The required parameters "NAME" and "VERSION" (or "VERSION\_FROM") are not necessary if it can find them unambiguously in your code.

# [CONFIGURATION OPTIONS](#CONFIGURATION_OPTIONS)

This module also adds some Configuration parameters of its own:

## [NAME](#NAME~2)

The NAME parameter is required by **ExtUtils::MakeMaker**. 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.

If this module can't find a default for "NAME" it will ask you to specify it manually.

## [VERSION](#VERSION)

**ExtUtils::MakeMaker** requires either the "VERSION" or "VERSION\_FROM" parameter. If this module can guess the package's "NAME", it will attempt to parse the "VERSION" from it.

If this module can't find a default for "VERSION" it will ask you to specify it manually.

# [MAKE TARGETS](#MAKE_TARGETS)

**ExtUtils::MakeMaker** provides you with many useful "make" targets. A "make" **target** is the word you specify after "make", like "test" for "make test". Some of the more useful targets are:

- all
  
  This is the default target. When you type "make" it is the same as entering "make all". This target builds all of your code and stages it in the "blib" directory.
- test
  
  Run your distribution's test suite.
- install
  
  Copy the contents of the "blib" directory 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 by "perl Makefile.PL" and "make".
- help
  
  Same as typing "perldoc ExtUtils::MakeMaker".

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 like purge, except that it also deletes the files originally added by this module itself.
- chelp
  
  Short cut for typing "perldoc Module::Install".
- distsign
  
  Short cut for typing "cpansign -s", for **Module::Signature** users to sign the distribution before release.

# [SEE ALSO](#SEE_ALSO)

Module::Install, CPAN::MakeMaker, CPAN::MakeMaker::Philosophy

# [AUTHORS](#AUTHORS)

Adam Kennedy &lt;adamk@cpan.org&gt;

Audrey Tang &lt;autrijus@autrijus.org&gt;

Brian Ingerson &lt;INGY@cpan.org&gt;

# [COPYRIGHT](#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.

2026-08-29 perl v5.44.0

---

Document: Module::Install::Makefile(3pm) from perl-module-install 1.21-r10 (Chainguard OS)
Source: https://github.com/Perl-Toolchain-Gang/Module-Install
