You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by st...@apache.org on 2003/03/24 07:02:59 UTC
cvs commit: modperl-docs/src/docs/2.0/api/ModPerl MM.pod
stas 2003/03/23 22:02:59
Modified: src/docs/2.0/api/ModPerl MM.pod
Log:
bring the docs up-to-date with the recent additions to ModPerl::MM
Revision Changes Path
1.2 +92 -9 modperl-docs/src/docs/2.0/api/ModPerl/MM.pod
Index: MM.pod
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/2.0/api/ModPerl/MM.pod,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MM.pod 22 Mar 2003 08:20:30 -0000 1.1
+++ MM.pod 24 Mar 2003 06:02:59 -0000 1.2
@@ -2,33 +2,53 @@
ModPerl::MM -- A "subclass" of ExtUtils::MakeMaker for mod_perl 2.0
-=head1 SYNOPSIS
+=head1 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 methods
+ # 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
+ # or prevent overriding completely
sub MY::constants { shift->MM::constants(@_); }";
-=head1 DESCRIPTION
+ # override the default value of WriteMakefile's attribute
+ my $extra_inc = "/foo/include";
+ ModPerl::MM::WriteMakefile(
+ ...
+ INC => $extra_inc,
+ ...
+ );
+
+ # extend the default value of WriteMakefile's attribute
+ my $extra_inc = "/foo/include";
+ ModPerl::MM::WriteMakefile(
+ ...
+ INC => join " ", $extra_inc, ModPerl::MM::get_def_opt('INC'),
+ ...
+ );
+
+=head1 Description
C<ModPerl::MM> is a "subclass" of C<ExtUtils::MakeMaker> for mod_perl
2.0, to a degree of sub-classability of C<ExtUtils::MakeMaker>.
When C<ModPerl::MM::WriteMakefile()> is used instead of
C<ExtUtils::MakeMaker::WriteMakefile()>, C<ModPerl::MM> overrides
-several C<ExtUtils::MakeMaker> methods behind the scenes. So in most
-cases 3rd party module developers for mod_perl 2.0, don't need to mess
-with I<Makefile.PL> at all.
+several C<ExtUtils::MakeMaker> methods behind the scenes and supplies
+default C<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 I<Makefile.PL> at
+all.
+
+=head1 C<MY::> Default Methods
C<ModPerl::MM> overrides method I<foo> as long as I<Makefile.PL>
hasn't already specified a method I<MY::foo>. If the latter happens,
@@ -57,8 +77,6 @@
sub MY::constants { shift->MM::constants(@_); }";
-=head1 OVERRIDEN METHODS
-
C<ModPerl::MM> overrides the following methods:
=head2 C<ModPerl::MM::MY::constants>
@@ -72,5 +90,70 @@
This method makes sure that everything gets installed relative to the
C<Apache2/> subdir if C<MP_INST_APACHE2=1> was used to build mod_perl
2.0.
+
+=head1 C<WriteMakefile()> Default Arguments
+
+C<ModPerl::MM::WriteMakefile> supplies default arguments such as
+C<INC> and C<TYPEMAPS> unless they weren't passed to
+C<ModPerl::MM::WriteMakefile> from I<Makefile.PL>.
+
+If the default values aren't satisfying these should be overriden in
+I<Makefile.PL>. For example to supply an empty INC, explicitly set the
+argument in I<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
+C<ModPerl::MM::get_def_opt()> function. The following example appends
+an extra value to the default C<INC> attribute:
+
+ my $extra_inc = "/foo/include";
+ ModPerl::MM::WriteMakefile(
+ ...
+ INC => join " ", $extra_inc, ModPerl::MM::get_def_opt('INC'),
+ ...
+ );
+
+C<ModPerl::MM> supplies default values for the following
+C<ModPerl::MM::WriteMakefile> attributes:
+
+=head2 C<CCFLAGS>
+
+
+=head2 C<LIBS>
+
+
+=head2 C<INC>
+
+
+=head2 C<OPTIMIZE>
+
+
+=head2 C<LDDLFLAGS>
+
+
+=head2 C<TYPEMAPS>
+
+
+=head2 C<OTHERLDFLAGS>
+
+
+=head1 Public API
+
+The following functions are a part of the public API. They are
+described elsewhere in this document.
+
+=head2 C<WriteMakefile()>
+
+ ModPerl::MM::WriteMakefile(...);
+
+=head2 C<get_def_opt()>
+
+ my $def_val = ModPerl::MM::get_def_opt($key);
=cut