Apache-ASP

 view release on metacpan or  search on metacpan

Makefile.PL  view on Meta::CPAN

#!/usr/local/bin/perl

use strict;

$| = 1;

my $mtime_makefile = (stat('Makefile'))[9] || 0;
my $fresh_makefile = ($mtime_makefile > time() - 1200) ? 1 : 0;

my $necessary_modules = {
#    'Apache' => 'Make sure your installation of mod_perl is complete',
    'Class::Struct' => "Apache::ASP->Loader() precompile scripts functionality",
    'MLDBM' => 'This is used for reading and writing multi-level hashes on disk',
    'MLDBM::Sync 0.25' => 'Support for State dbms like $Session & $Application',		 
    'SDBM_File' => 'Internal databases used for state files, like $Session',
    'Data::Dumper' => 'Serializes data for MLDBM',
    'Fcntl' => 'Used for file locking constants',
    'File::Basename' => "Used for tests during 'make test'",
    'Digest::MD5' => '32 byte hash algorithm for cookie session-id',
    'Carp' => 'Provides critical error messaging with confess()',
};

my $optional_modules = 
  {
   'Devel::Symdump' => 'Used for StatINC setting, which reloads modules dynamically',
   'Win32::OLE' => { 
		    test => '$^O eq \'MSWin32\'',
		    message => 'Required for access to ActiveX objects on Win32, like ADO.',
		   },
   'CGI' => 'Required for file upload, make test, and command line ./cgi/asp script',
   'Compress::Zlib' => "Required for html gzip text compression for browsers that support it",
#   'DB_File' => 'Optional module for StateDB & CacheDB config options',
   'MLDBM::Sync::SDBM_File' => 'Optional module for StateDB config option that is faster than DB_File on Linux.  Also default CacheDB for XSLT caching, but DB_File may also be used as well as Tie::TextDir.',
   'HTML::Clean' => 'Compress text/html with Clean config or $Response->{Clean} set to 1-9',
   'HTML::FillInForm' => 
   'Enables FormFill feature which will auto fill forms from $Request->Form data',
## not relevant on apache2 context
##   'Apache::Filter' => 'Full SSI support via Apache::Filter & Apache::SSI',
##   'Apache::SSI' => 'Full SSI support via Apache::Filter & Apache::SSI',
   'Net::SMTP' => 'Runtime errors can be mailed to the webmaster with MailErrorTo config',
   'Net::Config' => 'Config options for use with Net::SMTP',
   'Time::HiRes' => 'Sub second Apache::ASP response timing with Debug 3/-3 turned on.',
## no longer seems supported
##   'Tie::TextDir .04' => 'Fast cache for CacheDB setting for things like large XSLT transformations.',
   'XML::XSLT 0.32' => 'XSLT, written in perl so makes for an easy install after installing Bundle::XML from CPAN.',
## no longer seems supported
##   'XML::Sablotron' => 'XSLT that is 10 times faster than XML::XSLT', 
   'XML::LibXSLT' => 'XSLT that is 2 times faster than XML::Sablotron',
};
	    
print "Checking for the REQUIRED modules...\n";
my($errors, $warnings);
for(sort keys %$necessary_modules) {
    eval 'use ' . $_ ;
    my $module_display = $_;
    $module_display =~ s/( [\d\.]+)$/ \>\=$1/isg;
    if($@) {
	$errors++;
	print " !!! you need the module: $module_display\n";
	print "     WHY: $necessary_modules->{$_}\n";
    } else {
	print " ... found $module_display !\n";
    }
}

print "\n";
if(! $errors) {



( run in 0.850 second using v1.01-cache-2.11-cpan-39bf76dae61 )