[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.217.118.156: ~ $
The Simplified MakeMaker class hierarchy
****************************************

What most people need to know.

(Subclasses on top.)

               MY
                |
        ExtUtils::MakeMaker
                |
        ExtUtils::MM_{Current OS}
                |
        ExtUtils::MM_Unix
                |
        ExtUtils::MM_Any

The object actually used is of the class MY which allows you to
override bits of MakeMaker inside your Makefile.PL by declaring
MY::foo() methods.


The Real MakeMaker class hierarchy
**********************************

You wish it was that simple.

Here's how it really works.

               PACK### (created each call to ExtUtils::MakeMaker->new)
                    .                       |
                 (mixin)                    |
                    .                       |
        MY (created by ExtUtils::MY)        |
        |                                   |
        ExtUtils::MY         MM (created by ExtUtils::MM)
                   |          |
                   ExtUtils::MM
                    |     |   |-----------------------
                    |     |                          |   
    ExtUtils::Liblist     ExtUtils::MakeMaker        |
          |                                          |
    ExtUtils::Liblist::Kid                           |
                                                     |
                                                     |
                                                     |
                                    ExtUtils::MM_{Current OS} (if necessary)
                                            |
                                    ExtUtils::MM_Unix
                                            |
                                    ExtUtils::MM_Any


NOTE: Yes, this is a mess.  See
http://archive.develooper.com/makemaker@perl.org/msg00134.html
for some history.

NOTE: When ExtUtils::MM is loaded it chooses a superclass for MM from
amongst the ExtUtils::MM_* modules based on the current operating
system.

NOTE: ExtUtils::MM_{Current OS} represents one of the ExtUtils::MM_*
modules except ExtUtils::MM_Any chosen based on your operating system.

NOTE: The main object used by MakeMaker is a PACK### object, *not*
ExtUtils::MakeMaker.  It is, effectively, a subclass of MY,
ExtUtils::Makemaker, ExtUtils::Liblist and ExtUtils::MM_{Current OS}

NOTE: The methods in MY are simply copied into PACK### rather than
MY being a superclass of PACK###.  I don't remember the rationale.

NOTE: ExtUtils::Liblist should be removed from the inheritence hiearchy
and simply be called as functions.

NOTE: Modules like File::Spec and Exporter have been omitted for clarity.


The MM_* hierarchy
******************

                               MM_Win95   MM_NW5
                                    \      /
MM_BeOS  MM_Cygwin  MM_OS2  MM_VMS  MM_Win32  MM_DOS  MM_UWIN
      \        |      |         |        /      /      /
       ------------------------------------------------
                           |       |
                        MM_Unix    |
                              |    |
                              MM_Any

NOTE: Each direct MM_Unix subclass is also an MM_Any subclass.  This
is a temporary hack because MM_Unix overrides some MM_Any methods with
Unix specific code.  It allows the non-Unix modules to see the
original MM_Any implementations.

NOTE: Modules like File::Spec and Exporter have been omitted for clarity.

Filemanager

Name Type Size Permission Actions
Changes File 86.4 KB 0644
NOTES File 3.37 KB 0644
PATCHING File 6.82 KB 0644
README File 433 B 0644
TODO File 2.04 KB 0644