home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 December (Special) / PCWorld_2005-12_Special_cd.bin / Bezpecnost / lsti / lsti.exe / framework-2.5.exe / Unix.pm < prev    next >
Text File  |  2005-04-27  |  2KB  |  73 lines

  1. package Module::Build::Platform::Unix;
  2.  
  3. use strict;
  4. use Module::Build::Base;
  5.  
  6. use vars qw(@ISA);
  7. @ISA = qw(Module::Build::Base);
  8.  
  9. sub link_c {
  10.   my $self = shift;
  11.   my $cf = $self->{config};
  12.   
  13.   # Some platforms (notably Mac OS X 10.3, but some others too) expect
  14.   # the syntax "FOO=BAR /bin/command arg arg" to work in %Config
  15.   # (notably $Config{ld}).  It usually works in system(SCALAR), but we
  16.   # use system(LIST). We fix it up here with 'env'.
  17.   
  18.   local $cf->{ld} = $cf->{ld};
  19.   my $env_start = qr/\s*\w+=/;
  20.   if (ref $cf->{ld}) {
  21.     unshift @{$cf->{ld}}, 'env' if $cf->{ld}[0] =~ /^$env_start/;
  22.   } else {
  23.     $cf->{ld} =~ s/^($env_start)/env $1/;
  24.   }
  25.   
  26.   return $self->SUPER::link_c(@_);
  27. }
  28.  
  29. sub make_tarball {
  30.   my $self = shift;
  31.   $self->{args}{tar}  ||= ['tar'];
  32.   $self->{args}{gzip} ||= ['gzip'];
  33.   $self->SUPER::make_tarball(@_);
  34. }
  35.  
  36. sub _startperl { "#! " . shift()->perl }
  37.  
  38. sub _construct {
  39.   my $self = shift()->SUPER::_construct(@_);
  40.  
  41.   # perl 5.8.1-RC[1-3] had some broken %Config entries, and
  42.   # unfortunately Red Hat 9 shipped it like that.  Fix 'em up here.
  43.   my $c = $self->{config};
  44.   for (qw(siteman1 siteman3 vendorman1 vendorman3)) {
  45.     $c->{"install${_}dir"} ||= $c->{"install${_}"};
  46.   }
  47.  
  48.   return $self;
  49. }
  50.  
  51. 1;
  52. __END__
  53.  
  54.  
  55. =head1 NAME
  56.  
  57. Module::Build::Platform::Unix - Builder class for Unix platforms
  58.  
  59. =head1 DESCRIPTION
  60.  
  61. The sole purpose of this module is to inherit from
  62. C<Module::Build::Base>.  Please see the L<Module::Build> for the docs.
  63.  
  64. =head1 AUTHOR
  65.  
  66. Ken Williams, ken@mathforum.org
  67.  
  68. =head1 SEE ALSO
  69.  
  70. perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
  71.  
  72. =cut
  73.