GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 134.29.175.74 / Your IP : 216.73.216.160 Web Server : nginx/1.10.2 System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586 User : Administrator ( 0) PHP Version : 7.1.0 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /nginx/html/JimMartinson/CST1611/VM_Data/Install/ApachePerlFiles/Perl/html/site/lib/ModPerl/ |
Upload File : |
<?xml version="1.0" ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <!-- saved from url=(0017)http://localhost/ --> <script language="JavaScript" src="../../../displayToc.js"></script> <script language="JavaScript" src="../../../tocParas.js"></script> <script language="JavaScript" src="../../../tocTab.js"></script> <link rel="stylesheet" type="text/css" href="../../../scineplex.css"> <title>ModPerl::MM -- A "subclass" of ExtUtils::MakeMaker for mod_perl 2.0</title> <link rel="stylesheet" href="../../../Active.css" type="text/css" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rev="made" href="mailto:" /> </head> <body> <!-- INDEX BEGIN --> <div name="index"> <script>writelinks('__top__',3);</script> <h1><a>ModPerl::MM -- A "subclass" of ExtUtils::MakeMaker for mod_perl 2.0</a></h1> <p><a name="__index__"></a></p> <ul> <li><a href="#name">NAME</a></li> <li><a href="#synopsis">Synopsis</a></li> <li><a href="#description">Description</a></li> <li><a href="#my___default_methods"><code>MY::</code> Default Methods</a></li> <ul> <li><a href="#modperl__mm__my__post_initialize"><code>ModPerl::MM::MY::post_initialize</code></a></li> </ul> <li><a href="#writemakefile___default_arguments"><code>WriteMakefile()</code> Default Arguments</a></li> <ul> <li><a href="#ccflags"><code>CCFLAGS</code></a></li> <li><a href="#libs"><code>LIBS</code></a></li> <li><a href="#inc"><code>INC</code></a></li> <li><a href="#optimize"><code>OPTIMIZE</code></a></li> <li><a href="#lddlflags"><code>LDDLFLAGS</code></a></li> <li><a href="#typemaps"><code>TYPEMAPS</code></a></li> <li><a href="#dynamic_lib"><code>dynamic_lib</code></a></li> <ul> <li><a href="#otherldflags"><code>OTHERLDFLAGS</code></a></li> </ul> <li><a href="#macro"><code>macro</code></a></li> <ul> <li><a href="#mod_install"><code>MOD_INSTALL</code></a></li> </ul> </ul> <li><a href="#public_api">Public API</a></li> <ul> <li><a href="#writemakefile__"><code>WriteMakefile()</code></a></li> <li><a href="#get_def_opt__"><code>get_def_opt()</code></a></li> </ul> </ul> <hr name="index" /> </div> <!-- INDEX END --> <p> </p> <h1><a name="name">NAME</a></h1> <p>ModPerl::MM -- A "subclass" of ExtUtils::MakeMaker for mod_perl 2.0</p> <p> </p> <hr /> <h1><a name="synopsis">Synopsis</a></h1> <pre> <span class="keyword">use</span> <span class="variable">ModPerl::MM</span><span class="operator">;</span> <span class="comment"># ModPerl::MM takes care of doing all the dirty job of overriding </span> <span class="variable">ModPerl::MM::WriteMakefile</span><span class="operator">(...);</span> </pre> <pre> <span class="comment"># if there is a need to extend the default methods </span> <span class="keyword">sub</span><span class="variable"> MY::constants </span><span class="operator">{</span> <span class="keyword">my</span> <span class="variable">$self</span> <span class="operator">=</span> <span class="keyword">shift</span><span class="operator">;</span> <span class="variable">$self</span><span class="operator">-></span><span class="variable">ModPerl::MM::MY::constants</span><span class="operator">;</span> <span class="comment"># do something else;</span> <span class="operator">}</span> </pre> <pre> <span class="comment"># or prevent overriding completely</span> <span class="keyword">sub</span><span class="variable"> MY::constants </span><span class="operator">{</span> <span class="keyword">shift</span><span class="operator">-></span><span class="variable">MM::constants</span><span class="operator">(</span><span class="variable">@_</span><span class="operator">);</span> <span class="operator">}</span><span class="string">"; </span> </pre> <pre> <span class="comment"># override the default value of WriteMakefile's attribute</span> <span class="keyword">my</span> <span class="variable">$extra_inc</span> <span class="operator">=</span> <span class="string">"/foo/include"</span><span class="operator">;</span> <span class="variable">ModPerl::MM::WriteMakefile</span><span class="operator">(</span> <span class="operator">...</span> <span class="string">INC</span> <span class="operator">=></span> <span class="variable">$extra_inc</span><span class="operator">,</span> <span class="operator">...</span> <span class="operator">);</span> </pre> <pre> <span class="comment"># extend the default value of WriteMakefile's attribute</span> <span class="keyword">my</span> <span class="variable">$extra_inc</span> <span class="operator">=</span> <span class="string">"/foo/include"</span><span class="operator">;</span> <span class="variable">ModPerl::MM::WriteMakefile</span><span class="operator">(</span> <span class="operator">...</span> <span class="string">INC</span> <span class="operator">=></span> <span class="keyword">join</span> <span class="string">" "</span><span class="operator">,</span> <span class="variable">$extra_inc</span><span class="operator">,</span> <span class="variable">ModPerl::MM::get_def_opt</span><span class="operator">(</span><span class="string">'INC'</span><span class="operator">),</span> <span class="operator">...</span> <span class="operator">);</span> </pre> <p> </p> <hr /> <h1><a name="description">Description</a></h1> <p><code>ModPerl::MM</code> is a "subclass" of <code>ExtUtils::MakeMaker</code> for mod_perl 2.0, to a degree of sub-classability of <code>ExtUtils::MakeMaker</code>.</p> <p>When <code>ModPerl::MM::WriteMakefile()</code> is used instead of <code>ExtUtils::MakeMaker::WriteMakefile()</code>, <code>ModPerl::MM</code> overrides several <code>ExtUtils::MakeMaker</code> methods behind the scenes and supplies default <code>WriteMakefile()</code> arguments adjusted for mod_perl 2.0 build. It's written in such a way so that normally 3rd party module developers for mod_perl 2.0, don't need to mess with <em>Makefile.PL</em> at all.</p> <p> </p> <hr /> <h1><a name="my___default_methods"><code>MY::</code> Default Methods</a></h1> <p><code>ModPerl::MM</code> overrides method <em>foo</em> as long as <em>Makefile.PL</em> hasn't already specified a method <em>MY::foo</em>. If the latter happens, <code>ModPerl::MM</code> will DWIM and do nothing.</p> <p>In case the functionality of <code>ModPerl::MM</code> methods needs to be extended, rather than completely overriden, the <code>ModPerl::MM</code> methods can be called internally. For example if you need to modify constants in addition to the modifications applied by <code>ModPerl::MM::MY::constants</code>, call the <code>ModPerl::MM::MY::constants</code> method (notice that it resides in the package <code>ModPerl::MM::MY</code> and not <code>ModPerl::MM</code>), then do your extra manipulations on constants:</p> <pre> <span class="comment"># if there is a need to extend the methods </span> <span class="keyword">sub</span><span class="variable"> MY::constants </span><span class="operator">{</span> <span class="keyword">my</span> <span class="variable">$self</span> <span class="operator">=</span> <span class="keyword">shift</span><span class="operator">;</span> <span class="variable">$self</span><span class="operator">-></span><span class="variable">ModPerl::MM::MY::constants</span><span class="operator">;</span> <span class="comment"># do something else;</span> <span class="operator">}</span> </pre> <p>In certain cases a developers may want to prevent from <code>ModPerl::MM</code> to override certain methods. In that case an explicit override in <em>Makefile.PL</em> will do the job. For example if you don't want the <code>constants()</code> method to be overriden by <code>ModPerl::MM</code>, add to your <em>Makefile.PL</em>:</p> <pre> <span class="keyword">sub</span><span class="variable"> MY::constants </span><span class="operator">{</span> <span class="keyword">shift</span><span class="operator">-></span><span class="variable">MM::constants</span><span class="operator">(</span><span class="variable">@_</span><span class="operator">);</span> <span class="operator">}</span><span class="string">"; </span> </pre> <p><code>ModPerl::MM</code> overrides the following methods:</p> <p> </p> <h2><a name="modperl__mm__my__post_initialize"><code>ModPerl::MM::MY::post_initialize</code></a></h2> <p>This method is deprecated.</p> <p> </p> <hr /> <h1><a name="writemakefile___default_arguments"><code>WriteMakefile()</code> Default Arguments</a></h1> <p><code>ModPerl::MM::WriteMakefile</code> supplies default arguments such as <code>INC</code> and <code>TYPEMAPS</code> unless they weren't passed to <code>ModPerl::MM::WriteMakefile</code> from <em>Makefile.PL</em>.</p> <p>If the default values aren't satisfying these should be overriden in <em>Makefile.PL</em>. For example to supply an empty INC, explicitly set the argument in <em>Makefile.PL</em>.</p> <pre> <span class="variable">ModPerl::MM::WriteMakefile</span><span class="operator">(</span> <span class="operator">...</span> <span class="string">INC</span> <span class="operator">=></span> <span class="string">''</span><span class="operator">,</span> <span class="operator">...</span> <span class="operator">);</span> </pre> <p>If instead of fully overriding the default arguments, you want to extend or modify them, they can be retrieved using the <code>ModPerl::MM::get_def_opt()</code> function. The following example appends an extra value to the default <code>INC</code> attribute:</p> <pre> <span class="keyword">my</span> <span class="variable">$extra_inc</span> <span class="operator">=</span> <span class="string">"/foo/include"</span><span class="operator">;</span> <span class="variable">ModPerl::MM::WriteMakefile</span><span class="operator">(</span> <span class="operator">...</span> <span class="string">INC</span> <span class="operator">=></span> <span class="keyword">join</span> <span class="string">" "</span><span class="operator">,</span> <span class="variable">$extra_inc</span><span class="operator">,</span> <span class="variable">ModPerl::MM::get_def_opt</span><span class="operator">(</span><span class="string">'INC'</span><span class="operator">),</span> <span class="operator">...</span> <span class="operator">);</span> </pre> <p><code>ModPerl::MM</code> supplies default values for the following <code>ModPerl::MM::WriteMakefile</code> attributes:</p> <p> </p> <h2><a name="ccflags"><code>CCFLAGS</code></a></h2> <p> </p> <h2><a name="libs"><code>LIBS</code></a></h2> <p> </p> <h2><a name="inc"><code>INC</code></a></h2> <p> </p> <h2><a name="optimize"><code>OPTIMIZE</code></a></h2> <p> </p> <h2><a name="lddlflags"><code>LDDLFLAGS</code></a></h2> <p> </p> <h2><a name="typemaps"><code>TYPEMAPS</code></a></h2> <p> </p> <h2><a name="dynamic_lib"><code>dynamic_lib</code></a></h2> <p> </p> <h3><a name="otherldflags"><code>OTHERLDFLAGS</code></a></h3> <pre> <span class="string">dynamic_lib</span> <span class="operator">=></span> <span class="operator">{</span> <span class="string">OTHERLDFLAGS</span> <span class="operator">=></span> <span class="operator">...</span> <span class="operator">}</span> </pre> <p> </p> <h2><a name="macro"><code>macro</code></a></h2> <p> </p> <h3><a name="mod_install"><code>MOD_INSTALL</code></a></h3> <pre> <span class="string">macro</span> <span class="operator">=></span> <span class="operator">{</span> <span class="string">MOD_INSTALL</span> <span class="operator">=></span> <span class="operator">...</span> <span class="operator">}</span> </pre> <p>makes sure that Apache-Test/ is added to @INC.</p> <p> </p> <hr /> <h1><a name="public_api">Public API</a></h1> <p>The following functions are a part of the public API. They are described elsewhere in this document.</p> <p> </p> <h2><a name="writemakefile__"><code>WriteMakefile()</code></a></h2> <pre> <span class="variable">ModPerl::MM::WriteMakefile</span><span class="operator">(...);</span> </pre> <p> </p> <h2><a name="get_def_opt__"><code>get_def_opt()</code></a></h2> <pre> <span class="keyword">my</span> <span class="variable">$def_val</span> <span class="operator">=</span> <span class="variable">ModPerl::MM::get_def_opt</span><span class="operator">(</span><span class="variable">$key</span><span class="operator">);</span> </pre> </body> </html>