X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=installperl;h=8ccd9590d8a1854371e7f47490b005be16f880ef;hb=439cb1c4bca8637a65af6ff559799d9f5b05b394;hp=c4cab78e0c5a078e64270056b5cd620352f86d7b;hpb=b53432e421f16fabc5e5530a1e2ce8c38d941676;p=p5sagit%2Fp5-mst-13.2.git diff --git a/installperl b/installperl index c4cab78..8ccd959 100755 --- a/installperl +++ b/installperl @@ -245,7 +245,7 @@ if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin) { chmod(0755, "$installbin/$_"); }; { - open (LD2, "$installbin/ld2"); + open (LD2, ">$installbin/ld2"); print LD2 "#!/bin/sh\n#\n# ld wrapper, passes all args to perlld;\n#\n" . "for trythis in $installbin/perl\ndo\n if [ -x \$trythis ]\n" . " then\n \$trythis $installbin/perlld \"\$\@\"\n" @@ -258,7 +258,7 @@ if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin) { chmod(0755, "$installbin/ld2"); }; } else { - $perldll = 'perl57.' . $dlext; + $perldll = 'perl59.' . $dlext; } if ($dlsrc ne "dl_none.xs") { @@ -386,6 +386,17 @@ foreach my $file (@corefiles) { } } +# Switch in the 5.005-threads versions of he threadsafe queue and semaphore +# modules if so needed. +if ($Config{use5005threads}) { + for my $m (qw(Queue Semaphore)) { + my $t = "$installprivlib/Thread/$m.pm"; + unlink $t; + copy("ext/Thread/$m.pmx", $t); + chmod(0444, $t); + } +} + # Install main perl executables # Make links to ordinary names if installbin directory isn't current directory. @@ -395,6 +406,10 @@ if (! $versiononly && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VM # MPE doesn't support hard links, so use a symlink. # We don't want another cloned copy. symlink($Config{perlpath}, "$installbin/perl$exe_ext"); + } elsif ($^O eq 'vos') { + # VOS doesn't support hard links, so use a symlink. + symlink("$installbin/$perl_verbase$ver$exe_ext", + "$installbin/$perl$exe_ext"); } else { link("$installbin/$perl_verbase$ver$exe_ext", "$installbin/$perl$exe_ext"); @@ -413,6 +428,10 @@ if ($archname && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VMS) { # MPE doesn't support hard links, so use a symlink. # We don't want another cloned copy. symlink($Config{perlpath}, "$installbin/$archperl"); + } elsif ($^O eq 'vos') { + # VOS doesn't support hard links, so use a symlink. + symlink("$installbin/$perl_verbase$ver$exe_ext", + "$installbin/$archperl"); } else { link("$installbin/$perl_verbase$ver$exe_ext", "$installbin/$archperl"); @@ -480,6 +499,9 @@ sub script_alias { if ($^O eq 'dos' or $Is_VMS or $^O eq 'transit') { copy("$installscript/$orig$scr_ext", "$installscript/$alias$scr_ext"); + } elsif ($^O eq 'vos') { + symlink("$installscript/$orig$scr_ext", + "$installscript/$alias$scr_ext"); } else { link("$installscript/$orig$scr_ext", "$installscript/$alias$scr_ext"); @@ -733,7 +755,10 @@ sub installlib { # ignore patch backups, RCS files, emacs backup & temp files and the # .exists files, .PL files, and .t files. - return if $name =~ m{\.orig$|~$|^#.+#$|,v$|^\.exists|\.PL$|\.t$}; + return if $name =~ m{\.orig$|~$|^#.+#$|,v$|^\.exists|\.PL$|\.t$} || + $dir =~ m{/t(?:/|$)}; + # ignore the test extensions + return if $dir =~ m{ext/XS/(?:APItest|Typemap)/}; $name = "$dir/$name" if $dir ne ''; @@ -802,13 +827,27 @@ sub installlib { sub copy_if_diff { my($from,$to)=@_; return 1 if (($^O eq 'VMS') && (-d $from)); - -f $from || warn "$0: $from not found"; + my $perlpodbadsymlink; + if ($from =~ m!^pod/perl[\w-]+\.pod$! && + -l $from && + ! -e $from) { + # Some Linux implementations have problems traversing over + # multiple symlinks (when going over NFS?) and fail to read + # the symlink target. Combine this with the fact that some + # of the pod files (the perl$OS.pod) are symlinks (to ../README.$OS), + # and you end up with those pods not getting installed. + $perlpodbadsymlink = 1; + } + -f $from || $perlpodbadsymlink || warn "$0: $from not found"; $packlist->{$to} = { type => 'file' }; if (compare($from, $to) || $nonono) { safe_unlink($to); # In case we don't have write permissions. if ($nonono) { $from = $depth . "/" . $from if $depth; } + if ($perlpodbadsymlink && $from =~ m!^pod/perl(.+)\.pod$!) { + $from = "README.$1"; + } copy($from, $to); # Restore timestamps if it's a .a library or for OS/2. if (!$nonono && ($Is_OS2 || $to =~ /\.a$/)) {