diff --git a/lib/ExtUtils/MM_Any.pm b/lib/ExtUtils/MM_Any.pm index 78cfa4345..6d40bc4ff 100644 --- a/lib/ExtUtils/MM_Any.pm +++ b/lib/ExtUtils/MM_Any.pm @@ -1935,6 +1935,8 @@ sub init_INST { $self->{INST_ARCHAUTODIR} = $self->catdir('$(INST_ARCHLIB)', 'auto', '$(FULLEXT)'); + $self->{INST_SHARE} ||= $self->catdir('$(INST_LIB)', 'auto', 'share'); + $self->{INST_SCRIPT} ||= $self->catdir($Curdir,'blib','script'); $self->{INST_MAN1DIR} ||= $self->catdir($Curdir,'blib','man1'); @@ -2974,9 +2976,9 @@ sub sharedir { return '' unless %share; my %files; - $self->_sharedir_find_files(\%files, $share{dist}, File::Spec->catdir('$(INST_LIB)', qw(auto share dist), '$(DISTNAME)'), \%share) if $share{dist}; + $self->_sharedir_find_files(\%files, $share{dist}, [qw/ $(INST_SHARE) dist $(DISTNAME) /], \%share) if $share{dist}; for my $module (keys %{ $share{module} || {} }) { - my $destination = File::Spec->catdir('$(INST_LIB)', qw(auto share module), $module); + my $destination = [ qw/$(INST_SHARE) module/, $module ]; $self->_sharedir_find_files(\%files, $share{module}{$module}, $destination, \%share); } my $pm_to_blib = $self->oneliner(q{pm_to_blib({@ARGV}, '$(INST_LIB)')}, ['-MExtUtils::Install']); @@ -2992,7 +2994,8 @@ sub _sharedir_find_files { return; } return if $options->{skip_dotfile} && /^\./; - $files->{$_} = $self->catfile($sink, $_); + my $file = $self->abs2rel($_, $source); + $files->{$_} = $self->catfile(@{$sink}, $file); }, no_chdir => 1, }, $source); diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm index fe385984f..f8d5f5adc 100644 --- a/lib/ExtUtils/MM_Unix.pm +++ b/lib/ExtUtils/MM_Unix.pm @@ -510,6 +510,7 @@ INST_ARCHLIBDIR = $self->{INST_ARCHLIBDIR} INST_AUTODIR = $self->{INST_AUTODIR} INST_ARCHAUTODIR = $self->{INST_ARCHAUTODIR} +INST_SHARE = $self->{INST_SHARE} INST_STATIC = $self->{INST_STATIC} INST_DYNAMIC = $self->{INST_DYNAMIC} diff --git a/t/sharedir.t b/t/sharedir.t index 732a4d440..2199020cb 100644 --- a/t/sharedir.t +++ b/t/sharedir.t @@ -84,7 +84,7 @@ SKIP: { run_ok('make'); run_ok('make', 'install'); - my $dir = catdir($install, qw/lib perl5 auto share dist TestDist share/); + my $dir = catdir($install, qw/lib perl5 auto share dist TestDist/); ok(-d $dir, 'Sharedir has been created'); ok(-e catfile($dir, 'normalfile'), 'File in sharedir has been created'); ok(-e catfile($dir, qw/dots .dotdir .dotfile/), 'A dotfile in a dotdir installed');