summaryrefslogtreecommitdiff
path: root/cpan/ExtUtils-MakeMaker/README.packaging
blob: 2e2d2952b8b1714a8b0b6ebfb010780052b51944 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
If you wish to package MakeMaker in a binary package, here's some tips.

tl;dr version:

1a) Set the BUILDING_AS_PACKAGE environment variable to a true value.
OR
1b) Set the $BUILDING_AS_PACKAGE variable in the Makefile.PL to true.
2)  Package normally, but watch out for dependency loops.

MakeMaker cannot have any dependencies, everything depends on it and
that would be a dependency loop.  It instead bundles pre-built copies
of all its non-core dependencies in the bundled/ directory.  It adds
them to itself if they're not already installed.

This can confuse packagers, it makes it look like MakeMaker contains a
lot more modules than it really does and causes conflicts.

You can tell MakeMaker not to use it's bundles and instead declare the
dependencies normally.  This is done either by setting the
BUILDING_AS_PACKAGE environment variable to true or by patching the
Makefile.PL and setting $BUILDING_AS_PACKAGE to true.  On the down
side, there will be dependency loops which your packaging system will
have to resolve.