1256a93a4Safresh1package ExtUtils::MM_OS390; 2256a93a4Safresh1 3256a93a4Safresh1use strict; 4256a93a4Safresh1use warnings; 5*f2a19305Safresh1our $VERSION = '7.70'; 6256a93a4Safresh1$VERSION =~ tr/_//d; 7256a93a4Safresh1 8256a93a4Safresh1use ExtUtils::MakeMaker::Config; 9256a93a4Safresh1require ExtUtils::MM_Unix; 10256a93a4Safresh1our @ISA = qw(ExtUtils::MM_Unix); 11256a93a4Safresh1 12256a93a4Safresh1=head1 NAME 13256a93a4Safresh1 14256a93a4Safresh1ExtUtils::MM_OS390 - OS390 specific subclass of ExtUtils::MM_Unix 15256a93a4Safresh1 16256a93a4Safresh1=head1 SYNOPSIS 17256a93a4Safresh1 18256a93a4Safresh1 Don't use this module directly. 19256a93a4Safresh1 Use ExtUtils::MM and let it choose. 20256a93a4Safresh1 21256a93a4Safresh1=head1 DESCRIPTION 22256a93a4Safresh1 23256a93a4Safresh1This is a subclass of L<ExtUtils::MM_Unix> which contains functionality for 24256a93a4Safresh1OS390. 25256a93a4Safresh1 26256a93a4Safresh1Unless otherwise stated it works just like ExtUtils::MM_Unix. 27256a93a4Safresh1 28256a93a4Safresh1=head2 Overriden methods 29256a93a4Safresh1 30256a93a4Safresh1=over 31256a93a4Safresh1 32256a93a4Safresh1=item xs_make_dynamic_lib 33256a93a4Safresh1 34256a93a4Safresh1Defines the recipes for the C<dynamic_lib> section. 35256a93a4Safresh1 36256a93a4Safresh1=cut 37256a93a4Safresh1 38256a93a4Safresh1sub xs_make_dynamic_lib { 39256a93a4Safresh1 my ($self, $attribs, $object, $to, $todir, $ldfrom, $exportlist, $dlsyms) = @_; 40256a93a4Safresh1 $exportlist = '' if $exportlist ne '$(EXPORT_LIST)'; 41256a93a4Safresh1 my $armaybe = $self->_xs_armaybe($attribs); 42256a93a4Safresh1 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 || ''); 43256a93a4Safresh1 my $dlsyms_arg = $self->xs_dlsyms_arg($dlsyms); 44256a93a4Safresh1 if ($armaybe ne ':'){ 45256a93a4Safresh1 $ldfrom = 'tmp$(LIB_EXT)'; 46256a93a4Safresh1 push(@m," \$(ARMAYBE) cr $ldfrom $object\n"); 47256a93a4Safresh1 push(@m," \$(RANLIB) $ldfrom\n"); 48256a93a4Safresh1 } 49256a93a4Safresh1 50256a93a4Safresh1 # For example in AIX the shared objects/libraries from previous builds 51256a93a4Safresh1 # linger quite a while in the shared dynalinker cache even when nobody 52256a93a4Safresh1 # is using them. This is painful if one for instance tries to restart 53256a93a4Safresh1 # a failed build because the link command will fail unnecessarily 'cos 54256a93a4Safresh1 # the shared object/library is 'busy'. 55256a93a4Safresh1 push(@m," \$(RM_F) \$\@\n"); 56256a93a4Safresh1 57256a93a4Safresh1 my $libs = '$(LDLOADLIBS)'; 58256a93a4Safresh1 59256a93a4Safresh1 my $ld_run_path_shell = ""; 60256a93a4Safresh1 if ($self->{LD_RUN_PATH} ne "") { 61256a93a4Safresh1 $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" '; 62256a93a4Safresh1 } 63256a93a4Safresh1 64256a93a4Safresh1 push @m, sprintf <<'MAKE', $ld_run_path_shell, $self->xs_obj_opt('$@'), $dlsyms_arg, $ldfrom, $libs, $exportlist; 65256a93a4Safresh1 %s$(LD) %s $(LDDLFLAGS) %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \ 66256a93a4Safresh1 $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \ 67256a93a4Safresh1 $(INST_DYNAMIC_FIX) 68256a93a4Safresh1 $(CHMOD) $(PERM_RWX) $@ 69256a93a4Safresh1MAKE 70256a93a4Safresh1 join '', @m; 71256a93a4Safresh1} 72256a93a4Safresh1 73256a93a4Safresh11; 74256a93a4Safresh1 75256a93a4Safresh1=back 76256a93a4Safresh1 77256a93a4Safresh1=head1 AUTHOR 78256a93a4Safresh1 79256a93a4Safresh1Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix 80256a93a4Safresh1 81256a93a4Safresh1=head1 SEE ALSO 82256a93a4Safresh1 83256a93a4Safresh1L<ExtUtils::MakeMaker> 84256a93a4Safresh1 85256a93a4Safresh1=cut 86256a93a4Safresh1__END__ 87