Apache::src(3)

my $src = Apache::src->new;

for my $path ($src->find) {
    my $mmn = $src->module_magic_number($path);
    my $v = $src->httpd_version($path);
    next unless $v;
    print "path = $path ($mmn,$v)\n";
    my $dir = $src->prompt("Configure with $path?"); }

NAME
Apache::src - Methods for locating and parsing bits of Apache source code

SYNOPSIS
 use Apache::src ();
 my $src = Apache::src->new;

DESCRIPTION
This module provides methods for locating and parsing bits of Apache source code.

METHODS
Create an object blessed into the Apache::src class.

 my $src = Apache::src->new;
Top level directory where source files are located.

 my $dir = $src->dir;
 -d $dir or die "can't stat $dir $!\n";
Apache's source tree was reorganized during development of version 1.3. So, common header files such as `httpd.h' are in different directories between versions less than 1.3 and those equal to or greater. This method will return the right directory.

Example:

 -e join "/", $src->main, "httpd.h" or die "can't stat httpd.h\n";
Searches for apache source directories, return a list of those found.

Example:

 for my $dir ($src->find) {
    my $yn = prompt "Configure with $dir ?", "y";
    ...
 }
Print include paths for MakeMaker's INC argument to `WriteMakefile'.

Example:

 use ExtUtils::MakeMaker;
 use Apache::src ();
 WriteMakefile(
     'NAME'    => 'Apache::Module',
     'VERSION' => '0.01',
     'INC'     => Apache::src->new->inc,
 );
Return the MODULE_MAGIC_NUMBER defined in the apache source.

Example:

 my $mmn = $src->module_magic_number;
Return the server version.

Example:

 my $v = $src->httpd_version;
Return other ld flags for MakeMaker's dynamic_lib argument to `WriteMakefile'. This might be needed on systems like AIX that need special flags to the linker to be able to reference mod_perl or httpd symbols.

Example:

 use ExtUtils::MakeMaker;
 use Apache::src ();
 WriteMakefile(
     'NAME'        => 'Apache::Module',
     'VERSION'     => '0.01',
     'INC'         => Apache::src->new->inc,
     'dynamic_lib' => {
         'OTHERLDFLAGS' => Apache::src->new->otherldflags,
     },
 );

AUTHOR
Doug MacEachern