---
name: "Apache::src"
section: "3pm"
platform: "linux"
package: "libapache-mod-perl"
version: "1.29.0.4-4.1+etch1"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/Apache::src"
---

# Apache::src(3pm)

Methods for locating and parsing bits of Apache source code

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

- new

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

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

- dir

  Top level directory where source files are located.

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

- main

  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";
  ```

- find

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

  Example:

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

- inc

  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,
   );
  ```

- module\_magic\_number

  Return the **MODULE\_MAGIC\_NUMBER** defined in the apache source.

  Example:

  ```
   my $mmn = $src->module_magic_number;
  ```

- httpd\_version

  Return the server version.

  Example:

  ```
   my $v = $src->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 Apache::src ();
  ```

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

## AUTHOR

Doug MacEachern
