use ExtUtils::MakeMaker;
use Getopt::Std;

getopts('d:rv:');

%pbuilderopts = (
	'gutsy' => '--bindmounts /media/hosk_1'
	);

$opt_v ||= 1;

if ($^O eq 'linux' && !defined $opt_d)
{
    $opt_d = `lsb_release -c`;
    $opt_d =~ s/^.*?(\w+)\s*$/$1/o;
}

@theselibs = (grep {-f } glob("lib/Font/TTF/*"), "lib/Font/TTF.pm");

# incantation to enable MY::pm_to_blib later on
if ($^O eq 'MSWin32')
{
    push(@ExtUtils::MakeMaker::Overridable, qw(pm_to_blib));
    @extras = ('dist' => { 'TO_UNIX' => 'perl -Mtounix -e "tounix(\"$(DISTVNAME)\")"' });
}

%makeinfo = (
        NAME => 'Font::TTF',
        VERSION_FROM => 'lib/Font/TTF.pm',
#        VERSION => "0.38",
#        HTMLLIBPODS => {map {my $t = $_; $t=~s/\..*?$/.html/o; $t='blib/Html/'.$t; $_ => $t;} @theselibs},
#        HTMLSCRIPTPODS => {map {my $t=$_; $t=~s/\..*?$/.html/o; $t='blib/Html/'.$t; $_ => $t;} @scripts},
        AUTHOR => "martin_hosken\@sil.org",
        ABSTRACT => "TTF font support for Perl",
        @extras
    );

WriteMakefile(%makeinfo);

if ($^O eq 'MSWin32') {
# incantation to solve the problem of everyone's $Config{make} being 'nmake'
# when we want 'pmake'. And $Config{} is read only.
# actually, this is just a copy of the code from ExtUtiles::MM_Win32 tidied
# up (to expose tabs) and the dependency on Config removed
sub MY::pm_to_blib
{
    my $self = shift;
    my($autodir) = $self->catdir('$(INST_LIB)','auto');
    return <<"EOT";

pm_to_blib: \$(TO_INST_PM)
\t$self->{NOECHO}\$(PERL) \"-I\$(INST_ARCHLINE)\" \"-I\$(INST_LIB)\" \\
\t\"-I\$(PERL_ARCHLIB)\" \"-I\$(PERL_LIB)\" -MExtUtils::Install \\
\t-e \"pm_to_blib({ qw[\$(PM_TO_BLIB)] }, '$autodir')
\t$self->{NOECHO}\$(TOUCH) \$@

EOT
}

}
elsif ($^O eq 'linux')
{

sub MY::postamble
{
    my ($self) = @_;
    my ($res);
    my ($package) = lc($self->{'NAME'});
	my ($pversion) = $self->{'VERSION'};
    my ($svn) = `svnversion`;
	my ($sign) = '--auto-debsign' if ($opt_r);
    my ($fpackage);

    $svn =~ s/[0-9]*://og;
    $svn =~ s/\s+$//o;
    $package =~ s/::/-/;
    $package = "lib${package}-perl";
    $pversion .= "+$svn" unless ($opt_r);
    $fpackage = "$package-$pversion";

    $res = <<"EOT";
deb-base: dist
	rm -fr $self->{'DISTVNAME'}
	rm -fr $fpackage
	tar xvzf $self->{'DISTVNAME'}.tar.gz
	mv $self->{'DISTVNAME'} $fpackage
	tar cfz "${package}_$pversion.orig.tar.gz" $fpackage
	cp -a debian $fpackage
	cd $fpackage && find . -name .svn | xargs rm -rf

# make deb builds an interim deb from svn source for release
deb: deb-base
EOT

    foreach $d (split(' ', $opt_d))
    {
    	$res .= <<"EOT";
	mkdir -p dists/$d	
	dch -D $d -v $pversion-$opt_v -m -b -c $fpackage/debian/changelog "Auto build from perl for $d"
	cd $fpackage && pdebuild --buildresult ../dists/$d -- --basetgz /var/cache/pbuilder/base-$d.tgz $pbuilderopts{$d}
EOT
    }

    return $res;
}

}