our %PREREQ_PM;
BEGIN {
    %PREREQ_PM= (
        'ExtUtils::Depends' => '0.405',
    );

    # If the prereqs for this script are missing,
    # write out a Makefile that tells CPAN to install them
    my $use_prereqs_code= join('', map { "use $_ '$PREREQ_PM{$_}'; " } keys %PREREQ_PM).'1;';
    print $use_prereqs_code."\n";
    unless (eval $use_prereqs_code) {
       warn "$@\n";
       WriteMakefile(
             NAME         => 'Tree::RB::XS',
             PREREQ_FATAL => 1,
             PREREQ_PM    => \%PREREQ_PM,
       );
       exit 1; # not reached
    }
}

# Write out the rbtree.h and rbtree.c files
use FindBin;
use lib "$FindBin::RealBin/util";
use RBGen;
RBGen->new(namespace => 'rbtree_')
    ->write_api("$FindBin::RealBin/rbtree.h")
    ->write_impl("$FindBin::RealBin/rbtree.c");

my $dep= ExtUtils::Depends->new('Tree::RB::XS');

$dep->add_c('rbtree.c');
$dep->add_xs('TreeRBXS.xs');
$dep->add_pm(map { my $n= $_; $n =~ s/^lib/\$(INST_LIB)/; $_ => $n } <lib/*/*.pm>, <lib/*/*/*.pm>);
$dep->add_typemaps('typemap');