Crypt-PBC

 view release on metacpan or  search on metacpan

Makefile.PL  view on Meta::CPAN

    # we don't literally build it, we add things to the makefile
    *MY::postamble = \&postamble;
}

sub postamble {
    my @CFLAGS = map {"-I$_"} @incpath;
    my @LFLAGS = map {"-L$_"} @libpath;

"
PBC\$(OBJ_EXT) : \$(MYEXTLIB)

\$(MYEXTLIB): pbc-$ver/.libs/libpbc.so
	\$(AR) \$(AR_STATIC_ARGS) \$@ pbc-$ver/.libs/*.o

pbc-$ver/.libs/libpbc.so:
	cd pbc-$ver && CFLAGS='@CFLAGS' CPPFLAGS='@CFLAGS' LDFLAGS='@LFLAGS' ./configure && \$(MAKE) \$(PASTHRU)
";

}

sub unpack_libpbc {
    my $ver = shift;
    return 1 if -d "pbc-$ver" or $ENV{SKIP_DOWNLOAD};

    warn "unpacking libpbc from pbc-$ver.tar.gz...\n";

    my $worked = 0;
    eval {
        eval "require Archive::Tar;"; die $@ if $@;
        my $tar = Archive::Tar->new;

        $tar->read("pbc-$ver.tar.gz", 1);
        $tar->extract;

        $worked = 1 if -x "pbc-$ver/configure";
    };
    warn "Archive::Tar unpack problem: $@\n" if $@;

    unless( $worked ) {
        if( system("gzip -dc pbc-$ver.tar.gz | tar -xvf -") == 0 ) {
            $worked = 1 if -x "pbc-$ver/configure";
        }
    }

    warn "failed to unpack pbc\n" unless $worked;
    $worked;
}

sub grab_libpbc {
    my $ver = shift;
    return 1 if -f "pbc-$ver.tar.gz" or $ENV{SKIP_DOWNLOAD};

    warn "downloading libpbc from http://voltar.org/pbcfiles/pbc-$ver.tar.gz...\n";

    my $worked = 0;
    eval {
        eval "require LWP::UserAgent"; die $@ if $@;
        my $ua = LWP::UserAgent->new;
           $ua->agent("crypt-pbc-fetcher/1.0");

        my $req = HTTP::Request->new(GET => "http://voltar.org/pbcfiles/pbc-$ver.tar.gz");
        my $res = $ua->request($req, "pbc-$ver.tar.gz");

        $worked = 1 if $res->is_success;
    };
    warn "LWP fetch problem: $@\n" if $@;

    unless( $worked ) {
        if( 0 != system(wget => '-O', "pbc-$ver.tar.gz", "http://voltar.org/pbcfiles/pbc-$ver.tar.gz") ) {
            warn "couldn't fetch with wget...\n";
            if( 0 != system(curl => '-o', "pbc-$ver.tar.gz", "http://voltar.org/pbcfiles/pbc-$ver.tar.gz") ) {
                warn "couldn't fetch with curl ...\n";
            }
        }

        $worked = 1 if -f "pbc-$ver.tar.gz";
    }

    warn "failed to download pbc\n" unless $worked;
    $worked;
}



( run in 0.969 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )