The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use ExtUtils::MakeMaker;
use File::Spec;
use File::Copy;

my @CLEAN_FILES = ();
my $mp_version = mod_perl_version();

test_configure();

my %makeconf = (
    'NAME'         => 'Apache::AuthCookie',
    'VERSION_FROM' => 'lib/Apache/AuthCookie.pm',
    'PREREQ_PM'    => {
        'Apache::Test' => 1.35,
        'Test::More'   => 0,
        'CGI'          => 0,
        'Class::Load'  => 0.03,
        'autobox'      => 1.10
    },
    'clean'        => {
        FILES => "@CLEAN_FILES"
    }
);

if (MM->can('signature_target')) {
    $makeconf{SIGN} = 1;
}

if ($mp_version == 2) {
    # 1.999022 == 2.0.0 RC5. mod_perl -> mod_perl2 renamed here.
    $makeconf{PREREQ_PM}{mod_perl2} = '1.999022';
    # CGI.pm 3.12 is required to work with mod_perl2
    $makeconf{PREREQ_PM}{CGI} = '3.12';
}
elsif ($mp_version == 1) {
    $makeconf{PREREQ_PM}{mod_perl} = '1.27';
}

WriteMakefile(%makeconf);

# inspired by Apache::Peek 1.01
sub test_configure {
    if (eval { require Apache::TestMM }) {
        # enable "make test"
        Apache::TestMM->import(qw(test clean));

        # accept configs from command line.
        Apache::TestMM::filter_args();

        Apache::TestMM::generate_script('t/TEST');

        push @CLEAN_FILES, 't/TEST';
    }
    else {
        # overload test rule with a no-op
        warn "***: You should install Apache::Test to do real testing\n";
        *MY::test = \&skip_no_apache_test;
    }
}

sub mod_perl_version {
    # try to figure out what version of mod_perl is installed.
    eval {
        require mod_perl
    };
    unless ($@) {
        if ($mod_perl::VERSION >= 1.99) {
            # mod_perl 2 prior to RC5 (1.99_21 or earlier)
            die "mod_perl 2.0.0 RC5 or later is required for this module";
        }

        return 1;
    }

    eval {
        require mod_perl2;
    };
    unless ($@) {
        return 2;
    }

    # we didn't fine a supported version issue a warning, and assume version 2.
    warn "no supported mod_perl version was found\n";

    return 2;
}

sub skip_no_apache_test {
    return <<'EOF';
test::
	@echo \*** This test suite requires Apache::Test available from CPAN
EOF
}