1 The Simplified MakeMaker class hierarchy
2 ****************************************
4 What most people need to know.
12 ExtUtils::MM_{Current OS}
18 The object actually used is of the class MY which allows you to
19 override bits of MakeMaker inside your Makefile.PL by declaring
23 The Real MakeMaker class hierarchy
24 **********************************
26 You wish it was that simple.
28 Here's how it really works.
30 PACK### (created each call to ExtUtils::MakeMaker->new)
34 MY (created by ExtUtils::MY) |
36 ExtUtils::MY MM (created by ExtUtils::MM)
39 | | |-----------------------
41 ExtUtils::Liblist ExtUtils::MakeMaker |
43 ExtUtils::Liblist::Kid |
47 ExtUtils::MM_{Current OS} (if necessary)
54 NOTE: Yes, this is a mess. See
55 http://archive.develooper.com/makemaker@perl.org/msg00134.html
58 NOTE: When ExtUtils::MM is loaded it chooses a superclass for MM from
59 amongst the ExtUtils::MM_* modules based on the current operating
62 NOTE: ExtUtils::MM_{Current OS} represents one of the ExtUtils::MM_*
63 modules except ExtUtils::MM_Any chosen based on your operating system.
65 NOTE: The main object used by MakeMaker is a PACK### object, *not*
66 ExtUtils::MakeMaker. It is, effectively, a subclass of MY,
67 ExtUtils::Makemaker, ExtUtils::Liblist and ExtUtils::MM_{Current OS}
69 NOTE: The methods in MY are simply copied into PACK### rather than
70 MY being a superclass of PACK###. I don't remember the rationale.
72 NOTE: ExtUtils::Liblist should be removed from the inheritence hiearchy
73 and simply be called as functions.
75 NOTE: Modules like File::Spec and Exporter have been omitted for clarity.
83 MM_BeOS MM_Cygwin MM_OS2 MM_VMS MM_Win32 MM_DOS MM_UWIN
85 ------------------------------------------------
91 NOTE: Each direct MM_Unix subclass is also an MM_Any subclass. This
92 is a temporary hack because MM_Unix overrides some MM_Any methods with
93 Unix specific code. It allows the non-Unix modules to see the
94 original MM_Any implementations.
96 NOTE: Modules like File::Spec and Exporter have been omitted for clarity.