The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# The -*- perl -*- script writes the Makefile for Pod::HTML

use 5.005;
use ExtUtils::MakeMaker;

# Package details
$AUTHOR       = 'Marek Rouchal <marekr@cpan.org>';
$NAME         = 'Marek::Pod::HTML';
$DISTNAME     = 'MarekPodHtml';
$VERSION_FROM = 'lib/Marek/Pod/HTML.pm';
$ABSTRACT     = 'Converts Perl Pod documentation to HTML format';

# executable scripts in this distribution
my %PL_FILES = map { ($a = $_) =~ s/\.PL// ? ($_,$a) : () } glob('scripts/*.PL');

# prerequite modules
my %PREREQ_PM = (
    'Pod::Parser'       => 1.12,
    'Pod::Checker'      => 1.2,
    'Pod::Find'         => 0.21,
    'HTML::Element'     => 3.08,
    'HTML::Entities'    => 1.18,
    'HTML::Tagset'      => 3.03,
    'HTML::TreeBuilder' => 3.08,
    'File::Spec'        => 0.8,
    'File::Path'        => 0,
    'File::Basename'    => 0
);

# Check for required modules
my $missing = 0;
$| = 1;

sub check_module {
  my ($module,$version) = @_;
  print substr("$module ............................",0,30)," ";
  eval "use $module";
  if($@) {
    print "** FAILED **\n$@\n";
    return 0;
  }
  $ver = eval "\$${module}::VERSION";
  unless(defined $ver && $ver >= $version) {
    $ver = '<none>' unless(defined $ver);
    print "** VERSION MISMATCH **\n";
    print "  need at least version $version, have version $ver\n";
    return 0;
  }
  print "ok\n";
  1;
}

print "\nChecking for installed modules\n\n";

for(keys %PREREQ_PM) {
  check_module($_,$PREREQ_PM{$_}) or $missing++;
}

print "\n";
warn <<"EDQ" if $missing;
****************************************************************************
You are missing some modules (or particular versions) that are required
for the modules in $NAME
to work correctly. Read the above messages and download any required
modules from http://www.perl.com/CPAN
****************************************************************************

EDQ

# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.

WriteMakefile(
    'ABSTRACT'     => $ABSTRACT,
    'AUTHOR'       => $AUTHOR,
    'NAME'         => $NAME,
    'DISTNAME'     => $DISTNAME,
    'PL_FILES'     => \%PL_FILES,
    'EXE_FILES'    => [ values %PL_FILES ],
    'PREREQ_PM'    => \%PREREQ_PM,
    'VERSION_FROM' => $VERSION_FROM, # finds $VERSION
    'clean'        => {FILES => join(' ',values %PL_FILES, 'html') },
);

sub MY::postamble {
<<"EDQ";

test_full :
	\$(MAKE) \$(TEST_TYPE) TEST_FILES=t/xtra/*.t

EDQ
}