---
name: "ExtUtils::Builder::MakeMaker"
section: "3pm"
platform: "linux"
package: "libextutils-builder-perl"
version: "0.017-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ExtUtils::Builder::MakeMaker"
---

# ExtUtils::Builder::MakeMaker(3pm)

A MakeMaker consumer for ExtUtils::Builder Plan objects

## NAME

ExtUtils::Builder::MakeMaker - A MakeMaker consumer for ExtUtils::Builder Plan objects

## VERSION

version 0.017

## SYNOPSIS

```
 use ExtUtils::MakeMaker;
 use ExtUtils::Builder::MakeMaker;
 ...
 WriteMakeFile(
   NAME => 'Foo',
   VERSION => 0.001,
 );
 sub MY::make_plans {
   my ($self, $planner) = @_;
   $planner->load_extension('Some::Module');
   ... # Add plans to $planner
 }
```

## DESCRIPTION

This MakeMaker extension will call your `"MY::make_plans"` method with a ExtUtils::Builder::Planner as argument so that you can add entries to it; these entries will be added to your Makefile. It will also call any `".pl"` files in `"/planner"` as DSL files, these are run in a new scope so delegates don't leak out. Entries may depend on existing MakeMaker entries and vice-versa. Typically one would make their target a dependency of a MakeMaker entry like `"pure_all"` or `"dynamic"`.

## DELEGATES

By default, the following delegates are defined on your planner:

- •

  meta

  A CPAN::Meta object representing the `"META.json"` file.

- •

  distribution

  The name of the distribution

- •

  version

  The version of the distribution

- •

  main\_module

  The main module of the distribution.

- •

  release\_status

  The release status of the distribution (e.g. `'stable'`).

- •

  perl\_path

  The path to the perl executable.

- •

  config

  The ExtUtils::Config::MakeMaker object for this build

- •

  is\_os(@os\_names)

  This returns true if the current operating system matches any of the listed ones.

- •

  is\_os\_type($os\_type)

  This returns true if the type of the OS matches `$os_type`. Legal values are `"Unix"`, `"Windows"` and `"VMS"`.

- •

  verbose

  This is always false.

- •

  uninst

  The value of the `"uninst"` command line argument.

- •

  jobs

  This is always `1`.

- •

  pureperl\_only

  The value of the `"PUREPERL_ONLY"` command line argument.

These are the same ones as Dist::Build sets except `"install_paths"` is missing.

## AUTHOR

Leon Timmermans \<fawaka@gmail.com\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Leon Timmermans.

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