GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MODPERL::MM (3)

.ds Aq ’

NAME

ModPerl::MM -- A "subclass" of ExtUtils::MakeMaker for mod_perl 2.0

CONTENTS

Synopsis



  use ModPerl::MM;
 
  # ModPerl::MM takes care of doing all the dirty job of overriding
  ModPerl::MM::WriteMakefile(...);

  # if there is a need to extend the default methods
  sub MY::constants {
      my $self = shift;
      $self->ModPerl::MM::MY::constants;
      # do something else;
  }

  # or prevent overriding completely
  sub MY::constants { shift->MM::constants(@_); }";

  # override the default value of WriteMakefiles attribute
  my $extra_inc = "/foo/include";
  ModPerl::MM::WriteMakefile(
      ...
      INC => $extra_inc,
      ...
  );

  # extend the default value of WriteMakefiles attribute
  my $extra_inc = "/foo/include";
  ModPerl::MM::WriteMakefile(
      ...
      INC => join " ", $extra_inc, ModPerl::MM::get_def_opt(INC),
      ...
  );



Description

ModPerl::MM is a subclass of ExtUtils::MakeMaker for mod_perl 2.0, to a degree of sub-classability of ExtUtils::MakeMaker.

When ModPerl::MM::WriteMakefile() is used instead of ExtUtils::MakeMaker::WriteMakefile(), ModPerl::MM overrides several ExtUtils::MakeMaker methods behind the scenes and supplies default WriteMakefile() 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 Makefile.PL at all.

MY:: Default Methods

ModPerl::MM overrides method foo as long as Makefile.PL hasn’t already specified a method MY::foo. If the latter happens, ModPerl::MM will DWIM and do nothing.

In case the functionality of ModPerl::MM methods needs to be extended, rather than completely overriden, the ModPerl::MM methods can be called internally. For example if you need to modify constants in addition to the modifications applied by ModPerl::MM::MY::constants, call the ModPerl::MM::MY::constants method (notice that it resides in the package ModPerl::MM::MY and not ModPerl::MM), then do your extra manipulations on constants:



  # if there is a need to extend the methods
  sub MY::constants {
      my $self = shift;
      $self->ModPerl::MM::MY::constants;
      # do something else;
  }



In certain cases a developers may want to prevent from ModPerl::MM to override certain methods. In that case an explicit override in Makefile.PL will do the job. For example if you don’t want the constants() method to be overriden by ModPerl::MM, add to your Makefile.PL:



  sub MY::constants { shift->MM::constants(@_); }";



ModPerl::MM overrides the following methods:

CWModPerl::MM::MY::post_initialize

This method is deprecated.

WriteMakefile() Default Arguments

ModPerl::MM::WriteMakefile supplies default arguments such as INC and TYPEMAPS unless they weren’t passed to ModPerl::MM::WriteMakefile from Makefile.PL.

If the default values aren’t satisfying these should be overriden in Makefile.PL. For example to supply an empty INC, explicitly set the argument in Makefile.PL.



  ModPerl::MM::WriteMakefile(
      ...
      INC => ,
      ...
  );



If instead of fully overriding the default arguments, you want to extend or modify them, they can be retrieved using the ModPerl::MM::get_def_opt() function. The following example appends an extra value to the default INC attribute:



  my $extra_inc = "/foo/include";
  ModPerl::MM::WriteMakefile(
      ...
      INC => join " ", $extra_inc, ModPerl::MM::get_def_opt(INC),
      ...
  );



ModPerl::MM supplies default values for the following ModPerl::MM::WriteMakefile attributes:

CWCCFLAGS

CWLIBS

CWINC

CWOPTIMIZE

CWLDDLFLAGS

CWTYPEMAPS

CWdynamic_lib

OTHERLDFLAGS



  dynamic_lib => { OTHERLDFLAGS => ... }



CWmacro

MOD_INSTALL



  macro => { MOD_INSTALL => ... }



makes sure that Apache-Test/ is added to @INC.

Public API

The following functions are a part of the public API. They are described elsewhere in this document.

CWWriteMakefile()



  ModPerl::MM::WriteMakefile(...);



CWget_def_opt()



  my $def_val = ModPerl::MM::get_def_opt($key);



Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 WORK::MOD_PERL-2.0.9::DOCS::API::MODPERL::MM (3) 2015-06-18

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.