# -*- perl -*- require 5.008; use strict; require ExtUtils::MakeMaker; eval { require 5.008; } or die << 'EOD'; ####################################### # # This module requires a minimum Perl version of 5.8.0 # Please upgrade! # ####################################### EOD print "\nConfiguring Devel::STrace...\n "; use Config; my @executables = (); foreach my $src ('plstrace') { open SCRIPT, ">$src.pl" or die "Can't create $src.pl: $!"; open SOURCE, "$src.source" or die "Missing $src.source"; chmod 0755, "$src.pl"; push @executables, "$src.pl"; print SCRIPT "$Config{startperl}\n"; print SCRIPT $_ while (); close SCRIPT; close SOURCE; } my %prereqs = ( 'IPC::Mmap' => '0.11', 'Devel::RingBuffer' => '0.31' ); my %opts = ( 'NAME' => 'Devel::STrace', 'VERSION_FROM' => 'lib/Devel/STrace.pm', 'dist' => { 'DIST_DEFAULT' => 'all tardist', 'SUFFIX' => 'gz', 'COMPRESS' => 'gzip -9vf' }, 'EXE_FILES' => \@executables, 'AUTHOR' => 'Dean Arnold, Presicient Corp. (darnold@presicient.com)', 'ABSTRACT' => 'strace for Perl scripts', 'PREREQ_PM' => \%prereqs, ); my $ok = 1; $ok &= CheckModule($_, $prereqs{$_}) foreach (keys %prereqs); print " Missing modules are available from CPAN (search.cpan.org). " unless $ok; ExtUtils::MakeMaker::WriteMakefile(%opts); sub CheckModule ($$;$) { my($module, $version, $package) = @_; $package ||= $module; $prereqs{$module} = $version || 0; if ($version) { print "Checking for $package, $version or later ... "; eval "use $module $version"; if ($@) { print("\nYou don't have the $package package", " version $version or later, installed.\n"); return 0; } } else { print "Checking for $package ... "; eval "use $module"; if ($@) { print("\nYou don't have the $package package installed.\n"); return 0; } } print "ok\n"; return 1; }