if ($scr_ext) { @scripts = map { "$_$scr_ext" } @scripts; }
-my @pods = (<pod/*.pod>) unless $nopods;
+my @pods = $nopods ? () : (<pod/*.pod>);
# Specify here any .pm files that are actually architecture-dependent.
# (Those included with XS extensions under ext/ are automatically
if ($Is_Cygwin) {
$perldll = $libperl;
- $perldll =~ s/(\..*)?$/.$dlext/;
+ my $v_e_r_s = $ver; $v_e_r_s =~ tr/./_/;
+ $perldll =~ s/(\..*)?$/$v_e_r_s.$dlext/;
+ $perldll =~ s/^lib/cyg/;
if ($Config{useshrplib} eq 'true') {
# install ld2 and perlld as well
foreach ('ld2', 'perlld') {
copy("$_", "$installbin/$_");
chmod(0755, "$installbin/$_");
};
+ {
+ 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"
+ . " exit \$?\n fi\ndone\n# hard luck!\necho i see no perl"
+ . " executable around there\necho perl is required to build "
+ . "dynamic libraries\necho look if the path to perl in /bin/ld2"
+ . " is correct\nexit 1\n";
+ close LD2;
+ };
+ chmod(0755, "$installbin/ld2");
};
} else {
- $perldll = 'perl57.' . $dlext;
+ $perldll = 'perl59.' . $dlext;
}
if ($dlsrc ne "dl_none.xs") {
}
}
+# 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.
# 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");
# 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");
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");
# 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 '';
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$/)) {