[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.137.198.0: ~ $
package ExtUtils::Mkbootstrap;

# There's just too much Dynaloader incest here to turn on strict vars.
use strict 'refs';

our $VERSION = '7.36';
$VERSION =~ tr/_//d;

require Exporter;
our @ISA = ('Exporter');
our @EXPORT = ('&Mkbootstrap');

use Config;

our $Verbose = 0;


sub Mkbootstrap {
    my($baseext, @bsloadlibs)=@_;
    @bsloadlibs = grep($_, @bsloadlibs); # strip empty libs

    print "	bsloadlibs=@bsloadlibs\n" if $Verbose;

    # We need DynaLoader here because we and/or the *_BS file may
    # call dl_findfile(). We don't say `use' here because when
    # first building perl extensions the DynaLoader will not have
    # been built when MakeMaker gets first used.
    require DynaLoader;

    rename "$baseext.bs", "$baseext.bso"
      if -s "$baseext.bs";

    if (-f "${baseext}_BS"){
	$_ = "${baseext}_BS";
	package DynaLoader; # execute code as if in DynaLoader
	local($osname, $dlsrc) = (); # avoid warnings
	($osname, $dlsrc) = @Config::Config{qw(osname dlsrc)};
	$bscode = "";
	unshift @INC, ".";
	require $_;
	shift @INC;
    }

    if ($Config{'dlsrc'} =~ /^dl_dld/){
	package DynaLoader;
	push(@dl_resolve_using, dl_findfile('-lc'));
    }

    my(@all) = (@bsloadlibs, @DynaLoader::dl_resolve_using);
    my($method) = '';
    if (@all || (defined $DynaLoader::bscode && length $DynaLoader::bscode)){
	open my $bs, ">", "$baseext.bs"
		or die "Unable to open $baseext.bs: $!";
	print "Writing $baseext.bs\n";
	print "	containing: @all" if $Verbose;
	print $bs "# $baseext DynaLoader bootstrap file for $^O architecture.\n";
	print $bs "# Do not edit this file, changes will be lost.\n";
	print $bs "# This file was automatically generated by the\n";
	print $bs "# Mkbootstrap routine in ExtUtils::Mkbootstrap (v$VERSION).\n";
	if (@all) {
	    print $bs "\@DynaLoader::dl_resolve_using = ";
	    # If @all contains names in the form -lxxx or -Lxxx then it's asking for
	    # runtime library location so we automatically add a call to dl_findfile()
	    if (" @all" =~ m/ -[lLR]/){
		print $bs "  dl_findfile(qw(\n  @all\n  ));\n";
	    } else {
		print $bs "  qw(@all);\n";
	    }
	}
	# write extra code if *_BS says so
	print $bs $DynaLoader::bscode if $DynaLoader::bscode;
	print $bs "\n1;\n";
	close $bs;
    }
}

1;

__END__

=head1 NAME

ExtUtils::Mkbootstrap - make a bootstrap file for use by DynaLoader

=head1 SYNOPSIS

  Mkbootstrap

=head1 DESCRIPTION

Mkbootstrap typically gets called from an extension Makefile.

There is no C<*.bs> file supplied with the extension. Instead, there may
be a C<*_BS> file which has code for the special cases, like posix for
berkeley db on the NeXT.

This file will get parsed, and produce a maybe empty
C<@DynaLoader::dl_resolve_using> array for the current architecture.
That will be extended by $BSLOADLIBS, which was computed by
ExtUtils::Liblist::ext(). If this array still is empty, we do nothing,
else we write a .bs file with an C<@DynaLoader::dl_resolve_using>
array.

The C<*_BS> file can put some code into the generated C<*.bs> file by
placing it in C<$bscode>. This is a handy 'escape' mechanism that may
prove useful in complex situations.

If @DynaLoader::dl_resolve_using contains C<-L*> or C<-l*> entries then
Mkbootstrap will automatically add a dl_findfile() call to the
generated C<*.bs> file.

=cut

Filemanager

Name Type Size Permission Actions
Command Folder 0755
Liblist Folder 0755
MakeMaker Folder 0755
Command.pm File 7.61 KB 0444
Install.pm File 39.63 KB 0444
Installed.pm File 14.03 KB 0444
Liblist.pm File 9.27 KB 0444
MANIFEST.SKIP File 971 B 0444
MM.pm File 2.08 KB 0444
MM_AIX.pm File 1.44 KB 0444
MM_Any.pm File 80.9 KB 0444
MM_BeOS.pm File 1.02 KB 0444
MM_Cygwin.pm File 3.99 KB 0444
MM_DOS.pm File 1.02 KB 0444
MM_Darwin.pm File 931 B 0444
MM_MacOS.pm File 887 B 0444
MM_NW5.pm File 5.33 KB 0444
MM_OS2.pm File 3.14 KB 0444
MM_QNX.pm File 889 B 0444
MM_UWIN.pm File 976 B 0444
MM_Unix.pm File 111.52 KB 0444
MM_VMS.pm File 66.6 KB 0444
MM_VOS.pm File 744 B 0444
MM_Win32.pm File 14.32 KB 0444
MM_Win95.pm File 1.25 KB 0444
MY.pm File 673 B 0444
MakeMaker.pm File 106.18 KB 0444
Manifest.pm File 22.89 KB 0444
Mkbootstrap.pm File 3.22 KB 0444
Mksymlists.pm File 10.74 KB 0444
Packlist.pm File 8.36 KB 0444
testlib.pm File 911 B 0444