The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Apache2::Build - Methods for locating and parsing bits of Apache source code

SYNOPSIS

use Apache2::Build ();
my $build = Apache2::Build->new;

# rebuild mod_perl with build opts from the previous build
% cd modperl-2.0
% perl -MApache2::Build -e rebuild

DESCRIPTION

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

Since mod_perl remembers what build options were used to build it, you can use this knowledge to rebuild it using the same options. Simply chdir to the mod_perl source directory and run:

% cd modperl-2.0
% perl -MApache2::Build -e rebuild

If you want to rebuild not yet installed, but already built mod_perl, run from its root directory:

% perl -Ilib -MApache2::Build -e rebuild

METHODS

new

Create an object blessed into the Apache2::Build class.

my $build = Apache2::Build->new;
dir

Top level directory where source files are located.

my $dir = $build->dir;
-d $dir or die "can't stat $dir $!\n";
find

Searches for apache source directories, return a list of those found.

Example:

for my $dir ($build->find) {
   my $yn = prompt "Configure with $dir ?", "y";
   ...
}
inc

Print include paths for MakeMaker's INC argument to WriteMakefile.

Example:

use ExtUtils::MakeMaker;

use Apache2::Build ();

WriteMakefile(
    'NAME'    => 'Apache2::Module',
    'VERSION' => '0.01',
    'INC'     => Apache2::Build->new->inc,
);
module_magic_number

Return the MODULE_MAGIC_NUMBER defined in the apache source.

Example:

my $mmn = $build->module_magic_number;
httpd_version

Return the server version.

Example:

my $v = $build->httpd_version;
otherldflags

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 Apache2::Build ();

WriteMakefile(
    'NAME'        => 'Apache2::Module',
    'VERSION'     => '0.01', 
    'INC'         => Apache2::Build->new->inc,
    'dynamic_lib' => {
        'OTHERLDFLAGS' => Apache2::Build->new->otherldflags,
    },
);

AUTHOR

Doug MacEachern