PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` 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.