summaryrefslogtreecommitdiff
path: root/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm
diff options
context:
space:
mode:
Diffstat (limited to 'systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm')
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm86
1 files changed, 86 insertions, 0 deletions
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm
new file mode 100755
index 0000000000..172d27c85f
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS390.pm
@@ -0,0 +1,86 @@
+package ExtUtils::MM_OS390;
+
+use strict;
+use warnings;
+our $VERSION = '7.62';
+$VERSION =~ tr/_//d;
+
+use ExtUtils::MakeMaker::Config;
+require ExtUtils::MM_Unix;
+our @ISA = qw(ExtUtils::MM_Unix);
+
+=head1 NAME
+
+ExtUtils::MM_OS390 - OS390 specific subclass of ExtUtils::MM_Unix
+
+=head1 SYNOPSIS
+
+ Don't use this module directly.
+ Use ExtUtils::MM and let it choose.
+
+=head1 DESCRIPTION
+
+This is a subclass of L<ExtUtils::MM_Unix> which contains functionality for
+OS390.
+
+Unless otherwise stated it works just like ExtUtils::MM_Unix.
+
+=head2 Overriden methods
+
+=over
+
+=item xs_make_dynamic_lib
+
+Defines the recipes for the C<dynamic_lib> section.
+
+=cut
+
+sub xs_make_dynamic_lib {
+ my ($self, $attribs, $object, $to, $todir, $ldfrom, $exportlist, $dlsyms) = @_;
+ $exportlist = '' if $exportlist ne '$(EXPORT_LIST)';
+ my $armaybe = $self->_xs_armaybe($attribs);
+ my @m = sprintf '%s : %s $(MYEXTLIB) %s$(DFSEP).exists %s $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) %s'."\n", $to, $object, $todir, $exportlist, ($dlsyms || '');
+ my $dlsyms_arg = $self->xs_dlsyms_arg($dlsyms);
+ if ($armaybe ne ':'){
+ $ldfrom = 'tmp$(LIB_EXT)';
+ push(@m," \$(ARMAYBE) cr $ldfrom $object\n");
+ push(@m," \$(RANLIB) $ldfrom\n");
+ }
+
+ # For example in AIX the shared objects/libraries from previous builds
+ # linger quite a while in the shared dynalinker cache even when nobody
+ # is using them. This is painful if one for instance tries to restart
+ # a failed build because the link command will fail unnecessarily 'cos
+ # the shared object/library is 'busy'.
+ push(@m," \$(RM_F) \$\@\n");
+
+ my $libs = '$(LDLOADLIBS)';
+
+ my $ld_run_path_shell = "";
+ if ($self->{LD_RUN_PATH} ne "") {
+ $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
+ }
+
+ push @m, sprintf <<'MAKE', $ld_run_path_shell, $dlsyms_arg, $self->xs_obj_opt('$@'), $ldfrom, $libs, $exportlist;
+ %s$(LD) $(LDDLFLAGS) %s $(OTHERLDFLAGS) %s $(MYEXTLIB) %s \
+ $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \
+ $(INST_DYNAMIC_FIX)
+ $(CHMOD) $(PERM_RWX) $@
+MAKE
+ join '', @m;
+}
+
+1;
+
+=back
+
+=head1 AUTHOR
+
+Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix
+
+=head1 SEE ALSO
+
+L<ExtUtils::MakeMaker>
+
+=cut
+__END__