diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm')
-rw-r--r-- | Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm | 53 |
1 files changed, 19 insertions, 34 deletions
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm index 598087ca19f..f23ec5a2a6c 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm @@ -5,7 +5,8 @@ use strict; use ExtUtils::MakeMaker qw(neatvalue); use File::Spec; -our $VERSION = '7.10_02'; +our $VERSION = '7.24'; +$VERSION = eval $VERSION; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; @@ -49,33 +50,12 @@ MAKE_TEXT sub dlsyms { my($self,%attribs) = @_; - - my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {}; - my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || []; - my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || []; - my($imports) = $attribs{IMPORTS} || $self->{IMPORTS} || {}; - my(@m); - (my $boot = $self->{NAME}) =~ s/:/_/g; - - if (not $self->{SKIPHASH}{'dynamic'}) { - push(@m," -$self->{BASEEXT}.def: Makefile.PL -", - ' $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e \'use ExtUtils::Mksymlists; \\ - Mksymlists("NAME" => "$(NAME)", "DLBASE" => "$(DLBASE)", ', - '"VERSION" => "$(VERSION)", "DISTNAME" => "$(DISTNAME)", ', - '"INSTALLDIRS" => "$(INSTALLDIRS)", ', - '"DL_FUNCS" => ',neatvalue($funcs), - ', "FUNCLIST" => ',neatvalue($funclist), - ', "IMPORTS" => ',neatvalue($imports), - ', "DL_VARS" => ', neatvalue($vars), ');\' -'); - } if ($self->{IMPORTS} && %{$self->{IMPORTS}}) { # Make import files (needed for static build) -d 'tmp_imp' or mkdir 'tmp_imp', 0777 or die "Can't mkdir tmp_imp"; open my $imp, '>', 'tmpimp.imp' or die "Can't open tmpimp.imp"; - while (my($name, $exp) = each %{$self->{IMPORTS}}) { + foreach my $name (sort keys %{$self->{IMPORTS}}) { + my $exp = $self->{IMPORTS}->{$name}; my ($lib, $id) = ($exp =~ /(.*)\.(.*)/) or die "Malformed IMPORT `$exp'"; print $imp "$name $lib $id ?\n"; } @@ -88,21 +68,26 @@ $self->{BASEEXT}.def: Makefile.PL system "cd tmp_imp; $Config::Config{ar} x ../tmpimp$Config::Config{lib_ext}" and die "Cannot extract import objects: $!, \$?=$?"; } - join('',@m); + return '' if $self->{SKIPHASH}{'dynamic'}; + $self->xs_dlsyms_iterator(\%attribs); } -sub static_lib { - my($self) = @_; - my $old = $self->ExtUtils::MM_Unix::static_lib(); - return $old unless $self->{IMPORTS} && %{$self->{IMPORTS}}; +sub xs_dlsyms_ext { + '.def'; +} - my @chunks = split /\n{2,}/, $old; - shift @chunks unless length $chunks[0]; # Empty lines at the start - $chunks[0] .= <<'EOC'; +sub xs_dlsyms_extra { + join '', map { qq{, "$_" => "\$($_)"} } qw(VERSION DISTNAME INSTALLDIRS); +} - $(AR) $(AR_STATIC_ARGS) $@ tmp_imp/* && $(RANLIB) $@ +sub static_lib_pure_cmd { + my($self) = @_; + my $old = $self->SUPER::static_lib_pure_cmd; + return $old unless $self->{IMPORTS} && %{$self->{IMPORTS}}; + $old . <<'EOC'; + $(AR) $(AR_STATIC_ARGS) "$@" tmp_imp/* + $(RANLIB) "$@" EOC - return join "\n\n". '', @chunks; } sub replace_manpage_separator { |