Cookie
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
my $MY_DEBUG = $ENV{COOKIES_DEBUG};
if( !$@ && !$ENV{NO_MOD_PERL} )
{
print( STDERR "Generating Makefile including modperl\n" ) if( $MY_DEBUG );
Apache::TestMM->import( qw(test clean) ); #enable 'make test'
$WriteMakefileArgs{PREREQ_PM}->{ 'Apache::Test' } = 0;
@scripts = qw( t/TEST );
# accept the configs from command line
Apache::TestMM::filter_args();
my $ref = {@Apache::TestMM::Argv};
$ref->{_HAS_APACHE_TEST} = 1;
my $config = Apache::TestConfig->thaw->httpd_config;
my( $has_ssl, $has_perl_ssl, $has_error ) = ( 0, '', 0 );
$ref->{_HAS_SSL} = 0;
# require Data::Dump;
# print( STDERR "Apache::TestConfig->thaw->httpd_config yields: ", Data::Dump::dump( $config ), "\n" ) if( $MY_DEBUG );
if( ref( $config ) eq 'Apache::TestConfig' )
{
$has_ssl = $config->{modules}->{ $config->{vars}->{ssl_module} } ? 1 : 0;
my $apache_bin = $config->{vars}->{httpd};
if( !$apache_bin )
{
eval
{
require File::Which;
};
if( !$@ )
{
for( qw( apache2 httpd ) )
{
if( $apache_bin = File::Which::which( $_ ) )
{
print( STDERR "Found Apache binary at $apache_bin" ) if( $MY_DEBUG );
last;
}
}
}
}
my $cmd = '';
if( $apache_bin )
{
$cmd .= ". $config->{vars}->{conf_dir}/envvars; " if( $config->{vars}->{conf_dir} && -e( "$config->{vars}->{conf_dir}/envvars" ) );
$cmd .= $apache_bin;
open( my $io, "${cmd} -M 2>&1|" );
while( <$io> )
{
$has_ssl++, last if( /ssl/i );
if( /Syntax[[:blank:]]+error[[:blank:]]+(?:on|at)[[:blank:]]+line[[:blank:]]+(\d+)/i )
{
$has_error = $1;
}
}
close( $io );
}
warn( "[warning] You have syntax error in your Apache configuration file at line $has_error. You might want to do an apache2ctl configtest or (${cmd} -t)\n" ) if( $has_error );
# IO::Socket::SSL or Net::SSL
eval( 'require IO::Socket::SSL' );
if( $@ )
{
my $io_ssl_err = $@;
eval( 'require Net::SSL' );
unless( $@ )
{
$has_perl_ssl = 'Net::SSL';
}
}
else
{
$has_perl_ssl = 'IO::Socket::SSL';
}
if( $has_ssl && $has_perl_ssl )
{
print( STDERR "Found Apache module mod_ssl enabled and $has_perl_ssl module installed. Ok\n" ) if( $MY_DEBUG );
$ref->{_HAS_SSL} = 1;
}
elsif( $has_ssl && !$has_perl_ssl )
{
print( STDERR "Found Apache module mod_ssl enabled, but missing perl modules (either IO::Socket::SSL or Net::SSL)\n" ) if( $MY_DEBUG );
}
elsif( !$has_ssl && $has_perl_ssl )
{
print( STDERR "Apache module mod_ssl is not enabled, but found $has_perl_ssl\n" ) if( $MY_DEBUG );
}
else
{
print( STDERR "Apache module mod_ssl is not enabled and could not find either IO::Socket::SSL nor Net::SSL, deactivating the use of SSL for our tests.\n" ) if( $MY_DEBUG );
}
}
print( STDERR "Found apxs? ", ( $ref->{apxs} ? "yes at $ref->{apxs}" : 'no' ), "\n" ) if( $MY_DEBUG );
if( !$ref->{apxs} )
{
my $apxs;
eval
{
require Apache2::BuildConfig;
require File::Spec;
require File::Which;
};
# perl -MApache2::BuildConfig -MData::Dump -lE 'my $c=Apache2::BuildConfig->new; say Data::Dump::dump($c)'
if( !$@ )
{
my $build = Apache2::BuildConfig->new;
$apxs = File::Spec->catfile( $build->{APXS_BINDIR}, 'apxs' ) if( $build->{APXS_BINDIR} );
undef( $apxs ) unless( -e( $apxs ) );
print( STDERR "Found apxs at $apxs\n" ) if( $MY_DEBUG );
}
if( !$apxs )
{
eval
{
require File::Which;
};
if( !$@ && ( $apxs = File::Which::which( 'apxs' ) ) )
{
$ref->{apxs} = $apxs;
print( STDERR "Found apxs at $apxs" ) if( $MY_DEBUG );
}
}
if( $apxs )
{
print( STDERR "apxs found and set to $apxs\n" ) if( $MY_DEBUG );
$ref->{apxs} = $apxs;
}
else
{
die( "You have not provided the arguement -apxs and the apxs binary could not be found. Maybe you need to install apache2-dev?\n" );
}
}
if( !$ref->{httpd_conf} )
{
DEFAULT_APACHE_CONF_CHECK:
{
eval
{
require File::Spec;
require IO::File;
};
print( STDERR "Error trying to load File::Spec and IO::File: $@\n" ) if( $@ && $MY_DEBUG );
last DEFAULT_APACHE_CONF_CHECK if( $@ );
my $base;
# http://httpd.apache.org/docs/2.0/platform/windows.xml
my @possible_bases = ();
( run in 2.337 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )