github
Advanced Search
  • Home
  • Pricing and Signup
  • Explore GitHub
  • Blog
  • Login

schwern / extutils-makemaker

  • Admin
  • Watch Unwatch
  • Fork
  • Your Fork
  • Pull Request
  • Download Source
    • 26
    • 9
  • Source
  • Commits
  • Network (9)
  • Issues (0)
  • Downloads (85)
  • Wiki (1)
  • Graphs
  • Branch: master

click here to add a description

click here to add a homepage

  • Branches (5)
    • better_BUILD_REQUIRES_tests
    • historical
    • installhtml
    • master ✓
    • mymeta
  • Tags (85)
    • v6.56
    • v6.55_03
    • v6.55_02
    • v6.55_01
    • v6.54
    • v6.53_03
    • v6.53_02
    • v6.53_01
    • v6.52
    • v6.51_04
    • v6.51_03
    • v6.51_02
    • v6.51_01
    • v6.50
    • v6.49_01
    • v6.48
    • v6.47_02
    • v6.47_01
    • v6.46
    • v6.42
    • v6.30
    • v6.25.05
    • v6.25.04
    • v6.25.03
    • v6.25.02
    • v6.25.01
    • v6.25
    • v6.24.01
    • v6.24
    • v6.23
    • v6.22
    • v6.21_03
    • v6.21
    • v6.20
    • v6.19
    • v6.18
    • v6.17
    • v6.16
    • v6.15
    • v6.14
    • v6.13
    • v6.12
    • v6.11
    • v6.10_08
    • v6.10_07
    • v6.10_06
    • v6.10_05
    • v6.10_04
    • v6.10_03
    • v6.10_02
    • v6.10_01
    • v6.06_05
    • v6.06_04
    • v6.06_03
    • v6.06_02
    • v6.03
    • v6.02
    • v6.01
    • v6.00
    • v5.96_01
    • v5.95_01
    • v5.94_02
    • v5.94_01
    • v5.93_01
    • v5.92_01
    • v5.91_02
    • v5.91_01
    • v5.90_01
    • v5.55_02
    • v5.55_01
    • v5.54_01
    • v5.53_02
    • v5.53_01
    • v5.52_01
    • v5.51_01
    • v5.50_01
    • v5.49_01
    • v5.48_04
    • Bleadperl_15260
    • Bleadperl_15023
    • Bleadperl_14902
    • Bleadperl_14688
    • Bleadperl_14612
    • Bleadperl_14453
    • Bleadperl_14438
Sending Request…
Enable Donations

Pledgie Donations

Once activated, we'll place the following badge in your repository's detail box:
Pledgie_example
This service is courtesy of Pledgie.

Perl module which drives "perl Makefile.PL" to make Makefiles. — Read more

  cancel

http://makemaker.org

  cancel
  • Private
  • Read-Only
  • HTTP Read-Only

This URL has Read+Write access

Link to the repository in the POD 
schwern (author)
Tue Dec 22 16:21:46 -0800 2009
commit  cf2b8f7505b2d506d4d23ca855da4c2a7b9a4020
tree    6822fa71e03b908887b57bcd26247351fb0121ee
parent  02d56ca2d3e3027fc1640343b3fa1fddb25d1bd0
extutils-makemaker / NOTES NOTES
100644 97 lines (74 sloc) 3.448 kb
edit raw blame history
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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.
 
Blog | Support | Training | Contact | API | Status | Twitter | Help | Security
© 2010 GitHub Inc. All rights reserved. | Terms of Service | Privacy Policy
Powered by the Dedicated Servers and
Cloud Computing of Rackspace Hosting®
Dedicated Server